## 1 Introduction  
Because of the increasing scale and complexity of sensor systems, large amounts of data are being collected, such as medical records, bioinformatics and aircraft health information. It is becoming increasingly more imperative to ensure the fast and safe storage of these data. NAND flash, a semiconductor-based nonvolatile memory, features non-volatility, low power-consumption, fast access time and shock-resistance and therefore is widely used in sensor systems, such as wireless sensor networks. There are mainly two kinds of NAND flash memory cells, namely single-level cell (SLC) and multi-level cell (MLC) flash memory. MLC NAND flash devices can cost less and have better storage density than SLC NAND flash devices. Therefore, MLC flash devices have been widely adopted by the market, and have become the mainstream flash storage media. Dramatic improvements in the price and capacity of MLC NAND flash memory have been achieved by technological advances, such as the aggressive shrinking of process geometry and an increase in the number of bits stored in each memory cell. These technological advances inevitably degrade the reliability of MLC NAND flash memory. On the issues of enhancing the reliability of NAND flash based storage systems, most existing works have focused on modifying the components in the current NAND flash memory architecture, e.g., file systems [1], the design of the flash translation layer (FTL) [2; 3; 4; 5; 6; 7], and the physical address mapping [8; 9; 10]. Some other works suggest that error prevention techniques be implemented to reduce the bit error rate of data stored in NAND flash memory [11; 12; 13; 14]. Although these approaches are effective at enhancing the reliability of NAND flash memory, they are not designed for the metadata, which can directly affect the reliability of the whole storage system. The most effective way of enhancing the reliability of MLC NAND flash memory is to ensure the reliability of metadata [15; 16], which occupies only a small portion of the total storage space but maintains the critical information of the file system (_i.e._, file allocation table and the root folder) and the address translations of the storage system. Therefore, how to enhance the reliability of the metadata stored in NAND flash memory has become an important issue. Previous studies on the reliability of the metadata in NAND flash memory have normally used a stronger Error Correcting Code (ECC) or redundancy [17; 18; 19] to provide extra protection for metadata. Normally, the redundancy methods back up the critical pages containing metadata, and stronger ECC methods provide extra levels of protection for metadata using either software ECC or hardware ECC. They could introduce extra numbers of I/O operations and incur garbage collection overhead. As illustrated in our experimental results, simply applying redundancy to metadata may negatively impact the block erase counts. Recent technology in MLC NAND flash memory uses multi-page architecture [20]. The different allocation of the data in Least Significant Bit (LSB) pages and Most Significant Bit (MSB) pages in this architecture will directly affect the reliability of the corresponding physical page. This paper for the first time exploits this intrinsic feature of MLC NAND flash to improve the reliability of metadata in MLCNAND flash storage systems. We present Asymmetric Programming, a reliability enhancement strategy that tries to keep all of the metadata in MSB pages following an asymmetrical programming manner, and aims to achieve a relatively low error. By doing this, the error rate for pages containing metadata can be significantly reduced, thereby enhancing the reliability of the entire MLC NAND flash storage system. We propose two strategies, _MSB allocation_ and _asymmetric garbage collection_, to reduce the error rate and improve the utilization of physical blocks. Our strategies can effectively enhance the reliability of MLC NAND flash memory while incurring no space overhead and negligible I/O overhead.