Implementation of a Reed-Solomon Code as an ECC in Yet Another Flash File System

Flash memory has become an important storage device in many embedded systems because of its high performance, low power consumption and shock resistance. Multi-level cell (MLC) is developed as an effective solution for reducing the cost and increasing the storage density in recent years. However, most of flash file system cannot handle the error correction sufficiently. To correct more errors for MLC, we implement Reed-Solomon (RS) code to YAFFS, what is widely used for flash-based file system. RS code has longer computing time but the correcting ability is much higher than that of Hamming code.




References:
[1] R. Micheloni, R. Ravasio, A. Marelli, et. Al, "A 4Gb 2b/cell NAND Flash
Memory with Embedded 5b BCH ECC for 36B/s System Read
Throughput," IEEE Inter. Solid-state Circuits Conf., Feb. 2006.
[2] ALEPH ONE LTD. "Yaffs: Yet another flash file system,"
http://www.yaffs.net.
[3] D. Woodhouse, "The jounalling flash file system," In Ottawa Linux
Symposium (Ottawa, ON, Canada, July 2001).
[4] Y. Kang, E. L. Miller, "Adding Aggressive Error Correction to a
High-Performance compressing Flash File System," EMSOFT-09,
October 12-16, 2009, Grenoble, France.
[5] B. Chen, X. Zhang, and Z. Wang, "Error correction for multi-level NAND
flash memory using Reed-Solomon codes," Signal Processing Systems,
2008. SiPS 2008. IEEE.
[6] A. Kawaguchi, S. Nishioka, and H. Motoda, "A flash-memory based file
system," In Proceedings of the Winter 1995 USENIX Technical
Conference (New Orleans, LA, Jan. 1995), USENIX, pp. 155-164.
[7] M. Rosenblum, J. K. Ousterhout, "The design and implementation of a
log-structured file system," ACM Transactions on Computer Systems 10,
1 (Feb. 1992), 26-52.
[8] R. W. Hamming, Coding and Information Theory, second ed.
Prentice-Hall, Englewood Cliffs, New Jersey, 1986.