Abstract :
Multi-level cell (MLC) NAND flash-based consumer electronic devices suffer from random multiple bit errors that grow exponentially with the increase of program/erase counts. Numerous error correction codes (ECCs) have been developed to detect and correct these multiple erroneous bits within a codeword, such as bose-chaudhuri-hocquenghem (BCH) and reed-solomon (RS) codes. However, most of these existing techniques do not take into account the uneven distribution of bit errors over flash pages, thus they cannot meet varying correction needs of the flash memories during its lifetime. Specifically, weak ECCs are eventually unable to correct some particular pages´ bit errors beyond their correction capabilities, while powerful ECCs can protect each page longer yet incur unnecessary computation overhead too early. In this paper, an elastic error correction code (EECC) technique is proposed, which can progressively enhance the error correction capability for each page when performing program operation. In particular, based on a scalable coding mapping model, EECC technique can enhance the ECC level progressively, by allowing each page to employ changeable ECC parity in its own spare out-of-band area according to its own remaining lifetime as well as the hot level of the data in it. In this way, this technique not only meets the changing error correction demands for different page, but also obtains a good reliability-performance tradeoff. Analytically and experimentally, the results demonstrate EECC scheme is efficient in many aspects of performance, and particularly is able to make significant power consumption savings without degrading the error correction capability 1.
Keywords :
BCH codes; NAND circuits; Reed-Solomon codes; circuit reliability; consumer electronics; error correction codes; error statistics; flash memories; power consumption; BCH code; Bose-Chaudhuri-Hocquenghem code; ECC parity; EECC technique; MLC NAND flash-based consumer electronic device; RS code; Reed-Solomon code; bit error distribution; codeword; computation overhead; elastic error correction code technique; erroneous bit correction; erroneous bit detection; error correction capability; flash memories; flash page; multilevel cell; out-of-band area; power consumption saving; program operation; program/erase counts; random multiple bit errors; reliability-performance tradeoff; remaining lifetime; scalable coding mapping model; Consumer electronics; Encoding; Error correction; Error correction codes; Flash memories; Mathematical model; Reliability; Error Correction Code; NAND Flash Memory; Reliability; Storage;