Virtual framework for testing the reliability of system software on embedded systems
Proceedings of the 2007 ACM symposium on Applied computing
PORCE: An efficient power off recovery scheme for flash memory
Journal of Systems Architecture: the EUROMICRO Journal
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Design and implementation of MLC NAND flash-based DBMS for mobile devices
Journal of Systems and Software
Characterizing flash memory: anomalies, observations, and applications
Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture
Write endurance in flash drives: measurements and analysis
FAST'10 Proceedings of the 8th USENIX conference on File and storage technologies
A space-efficient flash translation layer for CompactFlash systems
IEEE Transactions on Consumer Electronics
Low cost power failure protection for MLC NAND flash storage systems with PRAM/DRAM hybrid buffer
Proceedings of the Conference on Design, Automation and Test in Europe
Underpowering NAND flash: profits and perils
Proceedings of the 50th Annual Design Automation Conference
Understanding the robustness of SSDS under power fault
FAST'13 Proceedings of the 11th USENIX conference on File and Storage Technologies
Hi-index | 0.01 |
Flash memory is quickly becoming a common component in computer systems ranging from music players to mission-critical server systems. As flash plays a more important role, data integrity in flash memories becomes a critical question. This paper examines one aspect of that data integrity by measuring the types of errors that occur when power fails during a flash memory operation. Our findings demonstrate that power failure can lead to several non-intuitive behaviors. We find that increasing the time before power failure does not always reduce error rates and that a power failure during a program operation can corrupt data that a previous, successful program operation wrote to the device. Our data also show that interrupted program operations leave data more susceptible to read disturb and increase the probability that the programmed data will decay over time. Finally, we show that incomplete erase operations make future program operations to the same block unreliable.