TLM Modeling and Simulation for NAND Flash and Solid State Drive Systems
The demand for Solid State Drives (SSD) is growing both in the Enterprise and Client storage markets. SSD based on NAND Flash technology is a non-volatile storage that can be electrically erased and reprogrammed. NAND Flash technology provides higher durability than Hard Disk Drives (HDD), while providing access times similar to DRAM. However, it has also important limitations with regard to the amount of times that a memory block can be written before it starts wearing out. This effect (among others) implies that NAND Flash storage requires complex management, which is typically implemented on software and running on embedded device micro-controllers. In order to deal with the ever shortening time to market, NAND Flash manufactures are increasingly using virtual prototyping solutions that allow them and their SSD customers to develop controller’s firmware as early as possible in the design cycle. Moreover, using virtual prototyping, SSD manufactures can improve the reliability of the firmware by using fault injection techniques based on fast simulation models. All in all, NAND Flash and SSD manufactures are able to mitigate the risk of achieving their deadlines while dealing with new software architectures, algorithms and interface components. This tutorial describes our experience in modeling high density SSD systems using Transaction Level Modeling (TLM), including a TLM implementation of the standard ONFI protocol and extensive instrumentation that helps debugging and analyzing the FLASH Translation Layer (FTL) software running on those devices. Using our SSD reference Virtualizer Development Kit (VDK), we will demonstrate the main scenarios for software debugging, analysis and fault-injection, running actual FTL embedded software in a typical SSD hardware architecture.