skip to main content
10.1145/1629335.1629376acmconferencesArticle/Chapter ViewAbstractPublication PagesesweekConference Proceedingsconference-collections
research-article

Adding aggressive error correction to a high-performance compressing flash file system

Published: 12 October 2009 Publication History

Abstract

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.

References

[1]
Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J. D., Manasse, M., and Panigrahy, R. Design tradeoffs for SSD performance. In Proceedings of the 2008 USENIX Annual Technical Conference (June 2008).
[2]
Aleph One Ltd. Yaffs: Yet another flash file system. http://www.yaffs.net.
[3]
Anonymous. Secure hash standard. FIPS 180-2, National Institute of Standards and Technology, Aug. 2002.
[4]
Blackwell, T., Harris, J., and Seltzer, M. Heuristic cleaning algorithms in log-structured file systems. In Proceedings of the Winter 1995 USENIX Technical Conference (Jan. 1995), USENIX, pp. 277--288.
[5]
Burrows, M., Jerian, C., Lampson, B., and Mann, T. On-line data compression in a log-structured file system. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) (Boston, MA, Oct. 1992), pp. 2--9.
[6]
Chen, S. Types of ecc used on flash. http://www.spansion.com/application_notes/Types_of_ECC_Used_on_Flash_AN%_01_e.pdf, 2007.
[7]
Choi, H. J., Lim, S.-H., and Park, K. H. JFTL: A flash translation layer based on a journal remapping for flash memory. ACM Transactions on Storage 14, 4 (Jan. 2009).
[8]
Dholakia, A., Eleftheriou, E., Hu, X.-Y., Iliadis, I., Menon, J., and Rao, K. K. A new intra-disk redundancy scheme for high-reliability RAID storage systems in the presence of unrecoverable errors. ACM Transactions on Storage 4, 1 (May 2008), 1--42.
[9]
Greenan, K. M., Long, D. D., Miller, E. L., Schwarz, S.J., T. J. E., and Wildani, A. Building flexible, fault-tolerant flash-based storage systems. In Proceedings of the Fifth Workshop on Hot Topics in System Dependability (HotDep '09) (June 2009).
[10]
Greenan, K. M., and Miller, E. L. Reliability mechanisms for file systems using non-volatile memory as a metadata store. In 6th ACM&IEEE Conference on Embedded Software (EMSOFT '06) (Seoul, Korea, Oct. 2006), ACM.
[11]
Greenan, K. M., and Miller, E. L. PRIMS: Making NVRAM suitable for extremely reliable storage. In Proceedings of the Third Workshop on Hot Topics in System Dependability (HotDep '07) (June 2007).
[12]
Hamming, R. W. Coding and Information Theory, second ed. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.
[13]
Hunter, A. A brief introduction to the design of UBIFS. http://www.linux-mtd.infradead.org/doc/ubifs_whitepaper.pdf.
[14]
Jung, D., Kim, J., Kim, J.-S., and Lee, J. ScaleFFS: A scalable log-structured flash file system for mobile multimedia systems. ACM Transactions on Multimedia Computing, Communications and Applications 5, 1 (Oct. 2008).
[15]
Kang, D., Jung, D., Kang, J.-U., and Kim, J.-S. μ-tree : An ordered index structure for nand flash memory. In 7th ACM&IEEE Conference on Embedded Software (EMSOFT '07) (2007), pp. 144--153.
[16]
Kawaguchi, A., Nishioka, S., and Motoda, H. A flash-memory based file system. In Proceedings of the Winter 1995 USENIX Technical Conference (New Orleans, LA, Jan. 1995), USENIX, pp. 155--164.
[17]
Kenchammana-Hosekote, D. R., He, D., and Hafner, J. L. REO: A generic RAID engine and optimizer. In Proceedings of the 5th USENIX Conference on File and Storage Technologies (FAST) (San Jose, CA, Feb. 2007), Usenix, pp. 261--276.
[18]
Kim, H., and Ahn, S. BPLRU: A buffer management scheme for improving random writes in flash storage. In Proceedings of the 6th USENIX Conference on File and Storage Technologies (FAST) (2008), pp. 239--252.
[19]
Lim, S.-H., and Park, K.-H. An efficient NAND file system for flash memory storage. IEEE Transactions on Computers 55, 7 (July 2006), 906--912.
[20]
Litwin, W., and Schwarz, T. Algebraic signatures for scalable, distributed data structures. In Proceedings of the 20th International Conference on Data Engineering (ICDE '04) (Boston, MA, 2004), pp. 412--423.
[21]
McKusick, M. K., and Ganger, G. R. Soft updates: A technique for eliminating most synchronous writes in the Fast File System. In Proceedings of the Freenix Track: 1999 USENIX Annual Technical Conference (June 1999), pp. 1--18.
[22]
Miller, E. L., Brandt, S. A., and Long, D. D. E. HeRMES: High-performance reliable MRAM-enabled storage. In Proceedings of the 8th IEEE Workshop on Hot Topics in Operating Systems (HotOS-VIII) (Schloss Elmau, Germany, May 2001), pp. 83--87.
[23]
Rivest, R. The MD5 message-digest algorithm. Request For Comments (RFC) 1321, IETF, Apr. 1992.
[24]
Rosenblum, M., and Ousterhout, J. K. The design and implementation of a log-structured file system. ACM Transactions on Computer Systems 10, 1 (Feb. 1992), 26--52.
[25]
Schwarz, T. J. E., Xin, Q., Miller, E. L., Long, D. D. E., Hospodor, A., and Ng, S. Disk scrubbing in large archival storage systems. In Proceedings of the 12th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS '04) (Oct. 2004), pp. 409--418.
[26]
Seltzer, M., Ganger, G., McKusick, M. K., Smith, K., Soules, C., and Stein, C. Journaling versus soft updates: Asynchronous meta-data protection in file systems. In Proceedings of the 2000 USENIX Annual Technical Conference (June 2000), pp. 18--23.
[27]
Seltzer, M., Smith, K. A., Balakrishnan, H., Chang, J., McMains, S., and Padmanabhan, V. File system logging versus clustering: A performance comparison. In Proceedings of the Winter 1995 USENIX Technical Conference (1995), pp. 249--264.
[28]
Storer, M. W., Greenan, K. M., Miller, E. L., and Voruganti, K. Pergamum: Replacing tape with energy efficient, reliable, disk-based archival storage. In Proceedings of the 6th USENIX Conference on File and Storage Technologies (FAST) (Feb. 2008).
[29]
Wang, X., Yin, Y. L., and Yu, H. Finding collisions in the full SHA-1. Lecture Notes in Computer Science 3621 (2005), 17--36.
[30]
Woodhouse, D. The journalling flash file system. In Ottawa Linux Symposium (Ottawa, ON, Canada, July 2001).

Cited By

View all
  • (2022)ELOFS: An Extensible Low-overhead Flash File System for Resource-scarce Embedded DevicesIEEE Transactions on Computers10.1109/TC.2022.3152079(1-1)Online publication date: 2022
  • (2020)LOFFSProceedings of the 57th ACM/EDAC/IEEE Design Automation Conference10.5555/3437539.3437640(1-6)Online publication date: 20-Jul-2020
  • (2020)Self-Clamping Programming in Narrow-Bridge Floating Gate Cells for Multi-Level Logic Non-Volatile Memory ApplicationsIEEE Journal of the Electron Devices Society10.1109/JEDS.2020.30059048(681-685)Online publication date: 2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
EMSOFT '09: Proceedings of the seventh ACM international conference on Embedded software
October 2009
332 pages
ISBN:9781605586274
DOI:10.1145/1629335
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. compression
  2. file system
  3. nand flash memory
  4. non-volatile memory
  5. reliability

Qualifiers

  • Research-article

Conference

ESWeek '09
ESWeek '09: Fifth Embedded Systems Week
October 12 - 16, 2009
Grenoble, France

Acceptance Rates

EMSOFT '09 Paper Acceptance Rate 33 of 106 submissions, 31%;
Overall Acceptance Rate 60 of 203 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)ELOFS: An Extensible Low-overhead Flash File System for Resource-scarce Embedded DevicesIEEE Transactions on Computers10.1109/TC.2022.3152079(1-1)Online publication date: 2022
  • (2020)LOFFSProceedings of the 57th ACM/EDAC/IEEE Design Automation Conference10.5555/3437539.3437640(1-6)Online publication date: 20-Jul-2020
  • (2020)Self-Clamping Programming in Narrow-Bridge Floating Gate Cells for Multi-Level Logic Non-Volatile Memory ApplicationsIEEE Journal of the Electron Devices Society10.1109/JEDS.2020.30059048(681-685)Online publication date: 2020
  • (2018)Pensieve: a Machine Learning Assisted SSD Layer for Extending the Lifetime2018 IEEE 36th International Conference on Computer Design (ICCD)10.1109/ICCD.2018.00016(35-42)Online publication date: Oct-2018
  • (2016)A Methodology for Estimating Performance and Power Consumption of Embedded Flash File SystemsACM Transactions on Embedded Computing Systems10.1145/290313915:4(1-25)Online publication date: 2-Aug-2016
  • (2016)An Endurance-Aware Metadata Allocation Strategy for MLC NAND Flash Memory Storage SystemsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2015.247439435:4(691-694)Online publication date: Apr-2016
  • (2016)Multi-version checkpointing for flash file systems2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC)10.1109/ASPDAC.2016.7428051(436-443)Online publication date: Jan-2016
  • (2015)An embedded storage framework abstracting each raw flash device as an MTDProceedings of the 8th ACM International Systems and Storage Conference10.1145/2757667.2757685(1-11)Online publication date: 26-May-2015
  • (2015)PurityProceedings of the 2015 ACM SIGMOD International Conference on Management of Data10.1145/2723372.2742798(1683-1694)Online publication date: 27-May-2015
  • (2015)Reliability-aware striping with minimized performance overheads for flash-based storage devicesProceedings of the 30th Annual ACM Symposium on Applied Computing10.1145/2695664.2695756(1906-1912)Online publication date: 13-Apr-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media