Asymmetric Programming: A Highly Reliable Metadata Allocation Strategy for MLC NAND Flash Memory-Based Sensor Systems

While the NAND flash memory is widely used as the storage medium in modern sensor systems, the aggressive shrinking of process geometry and an increase in the number of bits stored in each memory cell will inevitably degrade the reliability of NAND flash memory. In particular, it's critical to enhance metadata reliability, which occupies only a small portion of the storage space, but maintains the critical information of the file system and the address translations of the storage system. Metadata damage will cause the system to crash or a large amount of data to be lost. This paper presents Asymmetric Programming, a highly reliable metadata allocation strategy for MLC NAND flash memory storage systems. Our technique exploits for the first time the property of the multi-page architecture of MLC NAND flash memory to improve the reliability of metadata. The basic idea is to keep metadata in most significant bit (MSB) pages which are more reliable than least significant bit (LSB) pages. Thus, we can achieve relatively low bit error rates for metadata. Based on this idea, we propose two strategies to optimize address mapping and garbage collection. We have implemented Asymmetric Programming on a real hardware platform. The experimental results show that Asymmetric Programming can achieve a reduction in the number of page errors of up to 99.05% with the baseline error correction scheme.

[1]  Lingkun Wu,et al.  FSMAC: A file system metadata accelerator with non-volatile memory , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[2]  Liang Shi,et al.  Error Model Guided Joint Performance and Endurance Optimization for Flash Memory , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[3]  John Shalf,et al.  NANDFlashSim: Intrinsic latency variation aware NAND flash memory system modeling and simulation at microarchitecture level , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[4]  Sreekrishnan Venkateswaran Essential Linux Device Drivers , 2008 .

[5]  J. Kessenich,et al.  Bit error rate in NAND Flash memories , 2008, 2008 IEEE International Reliability Physics Symposium.

[6]  Renhai Chen,et al.  Deterministic crash recovery for NAND flash based storage systems , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[7]  Ewa Huebner,et al.  Data hiding in the NTFS file system , 2006, Digit. Investig..

[8]  Nikil D. Dutt,et al.  Meta-Cure: A reliability enhancement strategy for metadata in NAND flash memory storage systems , 2012, DAC Design Automation Conference 2012.

[9]  Grant Erickson,et al.  A 64-bit, shared disk file system for Linux , 1999, 16th IEEE Symposium on Mass Storage Systems in cooperation with the 7th NASA Goddard Conference on Mass Storage Systems and Technologies (Cat. No.99CB37098).

[10]  Tanaka,et al.  A Multi-page Cell Architecture For High-speed Programming Multi-level NAND Flash Memories , 1997, Symposium 1997 on VLSI Circuits.

[11]  Aviral Shrivastava,et al.  FSAF: File system aware flash translation layer for NAND Flash Memories , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[12]  XieYuan,et al.  Exploring the vulnerability of CMPs to soft errors with 3D stacked nonvolatile memory , 2013 .

[13]  Ken Takeuchi,et al.  A multipage cell architecture for high-speed programming multilevel NAND flash memories , 1998, IEEE J. Solid State Circuits.

[14]  Marcus Marrow,et al.  A closed-form expression for write amplification in NAND Flash , 2010, 2010 IEEE Globecom Workshops.

[15]  Yiran Chen,et al.  Low cost power failure protection for MLC NAND flash storage systems with PRAM/DRAM hybrid buffer , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[16]  David Woodhouse,et al.  JFFS : The Journalling Flash File System , 2001 .

[17]  Nikil D. Dutt,et al.  3D-FlashMap: A physical-location-aware block mapping strategy for 3D NAND flash memory , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[18]  Zili Shao,et al.  MNFTL: An efficient flash translation layer for MLC NAND flash memory storage systems , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[19]  Paul H. Siegel,et al.  Characterizing flash memory: Anomalies, observations, and applications , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[20]  Yiran Chen,et al.  DPA: A data pattern aware error prevention technique for NAND flash lifetime extension , 2014, 2014 19th Asia and South Pacific Design Automation Conference (ASP-DAC).

[21]  Chundong Wang,et al.  TreeFTL: Efficient RAM management for high performance of NAND flash-based storage systems , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[22]  Li-Pin Chang,et al.  Reducing asynchrony in channel garbage-collection for improving internal parallelism of multichannel solid-state disks , 2014, TECS.

[23]  Hsin-Hung Lin,et al.  Timing Analysis of System Initialization and Crash Recovery for a Segment-Based Flash Translation Layer , 2012, TODE.

[24]  Lihua Yue,et al.  A reliable B-tree implementation over flash memory , 2008, SAC '08.

[25]  Tong Zhang,et al.  Error Rate-Based Wear-Leveling for nand Flash Memory at Highly Scaled Technology Nodes , 2013, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[26]  Li-Pin Chang,et al.  An adaptive, low-cost wear-leveling algorithm for multichannel solid-state disks , 2013, TECS.

[27]  Renhai Chen,et al.  BLog: block-level log-block management for NAND flash memorystorage systems , 2013, LCTES '13.

[28]  Tao Li,et al.  Characterizing the efficiency of data deduplication for big data storage management , 2013, 2013 IEEE International Symposium on Workload Characterization (IISWC).

[29]  Zili Shao,et al.  An endurance-enhanced Flash Translation Layer via reuse for NAND flash memory storage systems , 2011, 2011 Design, Automation & Test in Europe.

[30]  David Hung-Chang Du,et al.  CFTL: a convertible flash translation layer adaptive to data access patterns , 2010, SIGMETRICS '10.

[31]  Jinjun Xiong,et al.  Techniques of Power-gating to Kill Sub-Threshold Leakage , 2006, APCCAS 2006 - 2006 IEEE Asia Pacific Conference on Circuits and Systems.

[32]  Zili Shao,et al.  A Space Reuse Strategy for Flash Translation Layers in SLC NAND Flash Memory Storage Systems , 2012, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[33]  Fernando Martinez Vallina,et al.  Zynq All Programmable SoC Sobel Filter Implementation Using the Vivado HLS Tool , 2012 .

[34]  André Brinkmann,et al.  Reliable and randomized data distribution strategies for large scale storage systems , 2011, 2011 18th International Conference on High Performance Computing.

[35]  Tei-Wei Kuo,et al.  An Adaptive Flash Translation Layer for High-Performance Storage Systems , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[36]  Laurence T. Yang,et al.  A Real-Time Flash Translation Layer for NAND Flash Memory Storage Systems , 2012, IEEE Transactions on Multi-Scale Computing Systems.

[37]  Jacob R. Lorch,et al.  A five-year study of file-system metadata , 2007, TOS.

[38]  Chin-Hsien Wu,et al.  A Bad-Block Test Design for Multiple Flash-Memory Chips , 2012, J. Inf. Sci. Eng..