STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
ELF: an efficient log-structured flash file system for micro sensor nodes
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
Algorithm Design
Algorithms and data structures for flash memories
ACM Computing Surveys (CSUR)
Efficient identification of hot data for flash memory storage systems
ACM Transactions on Storage (TOS)
Sorting networks and their applications
AFIPS '68 (Spring) Proceedings of the April 30--May 2, 1968, spring joint computer conference
Storage coding for wear leveling in flash memories
ISIT'09 Proceedings of the 2009 IEEE international conference on Symposium on Information Theory - Volume 2
A self-tuning hybrid flash translation layer for embedded systems
Proceedings of the 12th International Conference on Computer Systems and Technologies
ACM Transactions on Embedded Computing Systems (TECS)
Hi-index | 754.84 |
Flash memory is a nonvolatile computer memory comprised of blocks of cells, wherein each cell is implemented as either NAND or NOR floating gate. NAND flash is currently the most widely used type of flash memory. In a NAND flash memory, every block of cells consists of numerous pages; rewriting even a single page requires the whole block to be erased and reprogrammed. Block erasures determine both the longevity and the efficiency of a flash memory. Therefore, when data in a NAND flash memory are reorganized, minimizing the total number of block erasures required to achieve the desired data movement is an important goal. This leads to the flash data movement problem studied in this paper. We show that coding can significantly reduce the number of block erasures required for data movement, and present several optimal or nearly optimal data-movement algorithms based upon ideas from coding theory and combinatorics. In particular, we show that the sorting-based (noncoding) schemes require O(n log n) erasures to move data among n blocks, whereas coding-based schemes require only O(n) erasures. Furthermore, coding-based schemes use only one auxiliary block, which is the best possible and achieve a good balance between the number of erasures in each of the n + 1 blocks.