Using data clustering to improve cleaning performance for plash memory
Software—Practice & Experience
File system usage in Windows NT 4.0
Proceedings of the seventeenth ACM symposium on Operating systems principles
Real-time garbage collection for flash-memory storage systems of real-time embedded systems
ACM Transactions on Embedded Computing Systems (TECS)
Algorithms and data structures for flash memories
ACM Computing Surveys (CSUR)
Efficient management for large-scale flash-memory storage systems with resource conservation
ACM Transactions on Storage (TOS)
A superblock-based flash translation layer for NAND flash memory
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
On efficient wear leveling for large-scale flash-memory storage systems
Proceedings of the 2007 ACM symposium on Applied computing
A multi-channel architecture for high-performance NAND flash-based storage system
Journal of Systems Architecture: the EUROMICRO Journal
Storage alternatives for mobile computers
OSDI '94 Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation
A comparison of file system workloads
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
A log buffer-based flash translation layer using fully-associative sector translation
ACM Transactions on Embedded Computing Systems (TECS)
Endurance enhancement of flash-memory storage systems: an efficient static wear leveling design
Proceedings of the 44th annual Design Automation Conference
A group-based wear-leveling algorithm for large-capacity flash memory storage systems
CASES '07 Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems
A self-balancing striping scheme for NAND-flash storage systems
Proceedings of the 2008 ACM symposium on Applied computing
Development Platforms for Flash Memory Solid State Disks
ISORC '08 Proceedings of the 2008 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing
Design tradeoffs for SSD performance
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
System software for flash memory: a survey
EUC'06 Proceedings of the 2006 international conference on Embedded and Ubiquitous Computing
A space-efficient flash translation layer for CompactFlash systems
IEEE Transactions on Consumer Electronics
A low-cost wear-leveling algorithm for block-mapping solid-state disks
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
MFTL: A Design and Implementation for MLC Flash Memory Storage Systems
ACM Transactions on Storage (TOS)
NAND flash memory-based hybrid file system for high I/O performance
Journal of Parallel and Distributed Computing
Proceedings of the ACM SIGMETRICS/international conference on Measurement and modeling of computer systems
LINK-GC: a preemptive approach for garbage collection in NAND flash storages
Proceedings of the 28th Annual ACM Symposium on Applied Computing
An adaptive, low-cost wear-leveling algorithm for multichannel solid-state disks
ACM Transactions on Embedded Computing Systems (TECS)
BLAS: Block-level adaptive striping for solid-state drives
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Hi-index | 0.00 |
Solid-state disks (SSDs) are storage devices that emulate hard drives with flash memory. They have been widely deployed in mobile computers as disk drive replacements. Flash memory is organized in terms of erase blocks. With the current technology, a block can reach the end of its lifetime after thousands of erasure operations. Wear leveling is a technique to evenly erase the entire flash memory so that all blocks remain alive as long as possible. This study introduces a new wear-leveling algorithm based the observation that, under a real-life mobile PC's workload, most erasure operations are contributed by a small fraction of blocks. Our key ideas are 1) moving rarely updated data to a block that is extraordinarily worn and 2) avoiding repeatedly involving a block in wear-leveling activities. This study presents a successful implementation of the proposed wear-leveling algorithm using about 200 bytes of RAM in an SSD controller rated at 33 MHz. Evaluation results show that this algorithm achieves even wear of the entire flash memory while reducing the overheads of extra flash-memory operations.