adding aggressive error correction to a high-performance compressing flash file system
While NAND flash memories have rapidly increased in both capacity and performance and are increasingly used as a storage device in many embedded systems, their reliability has decreased both because of increased density and the use of multi-level cells (MLC). Current MLC technology only specifies the minimum requirement for an error correcting code (ECC), but provides no additional protection in hardware. However, existing flash file systems such as YAFFS and JFFS2 rely upon ECC to survive small numbers of bit errors, but cannot survive the larger numbers of bit errors or page failures that are becoming increasingly common as flash file systems scale to multiple gigabytes. We have developed a flash memory file system, RCFFS, that increases reliability by utilizing algebraic signatures to validate data and Reed-Solomon codes to correct erroneous or missing data. Our file system allows users to adjust the level of reliability they require by specifying the number of redundancy pages for each erase block,allowing them to dynamically trade off reliability and storage overhead. By integrating error mitigation with advanced features such as fast mounting and compression, we show, via simulation in NANDsim, that our file system can outperform YAFFS and JFFS2 while surviving flash memory errors that would cause data loss for existing flash file systems.
compression file system nand flash memory reliability non-volatile memory