A pattern-aware write strategy to enhance the reliability of flash-memory storage systems

Owing to high cell density caused by the advanced manufacturing process, the reliability of flash drives turns out to be rather challenging in flash system designs. In order to enhance the reliability of flash drives, error-correcting code (ECC) has been widely utilized in flash drives to correct error bits during programming/reading data to/from flash drives. Although ECC can effectively enhance the reliability of flash drives by correcting error bits, the capability of ECC would degrade while the program/erase (P/E) cycles of flash blocks is increased. Finally, ECC could not correct a flash page because a flash page contains too many error bits. As a result, reducing error bits is an effective solution to further improve the reliability of flash drives when a specific ECC is adopted in the flash drive. This work focuses on how to reduce the probability of producing error bits in a flash page. Thus, we propose a pattern-aware write strategy that allocates young blocks (i.e., blocks with low P/E cycles) for storing hot data and executes bit-flip operations on the written data so as to reduce the number of error bits in a flash page. By considering both the P/E cycles of blocks and the pattern of written data, the proposed pattern-aware write strategy can effectively improve the reliability of flash drives. The experimental results show that the proposed strategy can reduce the number of error pages by up to 40+, compared with the well-known DFTL solution. Moreover, the proposed strategy is orthogonal with all ECC mechanisms so that the reliability of the flash drives with ECC mechanisms can be further improved by the proposed strategy.

[1]  Shuhei Tanakamaru,et al.  NAND Flash Memory/ReRAM Hybrid Unified Solid-State-Storage Architecture , 2014, IEEE Transactions on Circuits and Systems I: Regular Papers.

[2]  Young-Pil Kim,et al.  Reducing MLC flash memory retention errors through Programming Initial Step Only , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[3]  Yiming Ouyang,et al.  CR5M: A mirroring-powered channel-RAID5 architecture for an SSD , 2014, 2014 30th Symposium on Mass Storage Systems and Technologies (MSST).

[4]  Anxiao Jiang,et al.  Systematic Error-Correcting Codes for Rank Modulation , 2012, IEEE Transactions on Information Theory.

[5]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[6]  Onur Mutlu,et al.  Program interference in MLC NAND flash memory: Characterization, modeling, and mitigation , 2013, ICCD.

[7]  Jongmoo Choi,et al.  WARM: Improving NAND flash memory lifetime with write-hotness aware retention management , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[8]  Onur Mutlu,et al.  Error patterns in MLC NAND flash memory: Measurement, characterization, and analysis , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[9]  A. L. Narasimha Reddy,et al.  Write amplification due to ECC on flash memory or leave those bit errors alone , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[10]  Anxiao Jiang,et al.  Error correction and partial information rewriting for flash memories , 2014, 2014 IEEE International Symposium on Information Theory.

[11]  Frank Vahid,et al.  Don't forget memories: a case study redesigning a pattern counting ASIC circuit for FPGAs , 2008, CODES+ISSS '08.

[12]  Shuhei Tanakamaru,et al.  95%-lower-BER 43%-lower-power intelligent solid-state drive (SSD) with asymmetric coding and stripe pattern elimination algorithm , 2011, 2011 IEEE International Solid-State Circuits Conference.

[13]  Onur Mutlu,et al.  Data retention in MLC NAND flash memory: Characterization, optimization, and recovery , 2015, 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA).

[14]  Osman S. Unsal,et al.  Flash correct-and-refresh: Retention-aware error management for increased flash memory lifetime , 2012, 2012 IEEE 30th International Conference on Computer Design (ICCD).