FlashSim: A Simulator for NAND Flash-based Solid-State Drives
Youngjae Kim, Brendan Tauras, Aayush Gupta, and Bhuvan Urgaonkar.
Proceedings of the IARIA Int'l Conference on Advances in System Simulation (SIMUL),
Porto, Portugal, September 2009.
Abstract:
NAND Flash memory-based Solid-State Disks (SSDs) are becoming popular
as the storage media in domains ranging
from mobile laptops to enterprise-scale storage systems due to a
number of benefits (e.g., lighter weights, faster access times, lower
power consumption, higher resistance to vibrations) they offer over
the conventionally popular Hard Disk Drives (HDDs). While a number of
well-regarded simulation environments exist for HDDs, the same is not
yet true for SSDs. This is due to SSDs having been in the storage
market for relatively less time as well as the lack of information
(hardware configuration and software methods) about state-of-the-art
SSDs that is publicly available. We describe the design and
implementation of FlashSim, a simulator aimed at filling this void in
performance evaluation of emerging storage systems that employ SSDs.
FlashSim is an event-driven simulator that follows the objected
oriented programming paradigm for modularity. We have validated the
performance of FlashSim against a number of commercial SSDs for
behavioral similarity. We have also used FlashSim to compare the
performance of SSD devices employing different Flash Translation Layer
(FTL) schemes, and analyzed the energy consumption of different FTL
schemes in the SSD. FlashSim has been written to be inter-operable
with the well-regarded DiskSim simulator, thus enabling the simulation
of a variety of “hybrid” storage systems employing combinations of
SSDs and HDDs. Given the current interest in such hybrid systems as
opposed to systems with SSDs replacing HDDs (due to higher price), we
believe this to be an especially useful feature of FlashSim. We have
made FlashSim freely available for download with the hope that it
would be of use to researchers exploring the design of SSD-based
systems.