Coding for Unreliable Flash Memory Cells

In this work, the model introduced by Gabrys is extended to account for the presence of unreliable memory cells. Leveraging data analysis on errors taking place in a TLC Flash device, we show that memory cells can be broadly categorized into reliable and unreliable cells, where the latter are much more likely to be in error. Our approach programs unreliable cells only in a limited capacity. In particular, we suggest a coding scheme, using generalized tensor product codes, that programs the unreliable cells only at certain voltage levels that are less likely to result in errors. We present simulation results illustrating an improvement of up to a half order of magnitude in page error rates compared to existing codes.

[1]  Anxiao Jiang,et al.  Optimized cell programming for flash memories , 2009, 2009 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing.

[2]  Paul H. Siegel,et al.  Characterization and error-correcting codes for TLC flash memories , 2012, 2012 International Conference on Computing, Networking and Communications (ICNC).

[3]  Hideki Imai,et al.  Generalized tensor product codes , 1981, IEEE Trans. Inf. Theory.

[4]  Lara Dolecek,et al.  Graded Bit-Error-Correcting Codes With Applications to Flash Memory , 2013, IEEE Transactions on Information Theory.

[5]  Chris Heegard Partitioned linear block codes for computer memory with 'stuck-at' defects , 1983, IEEE Trans. Inf. Theory.

[6]  Onur Mutlu,et al.  Error patterns in MLC NAND flash memory: Measurement, characterization, and analysis , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).