Design and Implementation of Virtual Stream Management for NAND Flash Based Storage
NAND flash memory is being widely used as data storage in consumer electronics devices such as tablet computers and smartphones. However, due to the inherent nature of NAND flash memory where in place update is not supported, NAND flash based SSDs (Solid State Drives) suffer from severe performance degradation as they need to move valid data during garbage collection (GC) Recently, multi streamed SSDs have been proposed to reduce the cost of GC in the SSDs. However, commercial SSDs used in consumer electronics devices support only a small number of streams due to the device's limitation in hardware resources. This makes it difficult to fully utilize the benefits of the multi streamed SSDs. In this article, we propose a new concept of virtual streams (vStreams) that are independent of the number of available streams within the multi streamed SSDs. We present the design and implementation of virtual stream management architecture, called vStream FTL, for efficient stream management in the SSD. Specifically, we present novel mechanisms to monitor the lifetime of each stream with a negligible memory overhead and map one or more vStreams into a physical stream at run time according to the lifetime of vStream. In addition, we implement the enhanced garbage collection scheme, called vStream aware GC that increases the benefits of multi streamed SSDs further. Our vStream FTL allows embedded system developers to manage a sufficient number of streams regardless of the physical streams supported by the device. The evaluation results with smartphone workload show that the proposed vStream FTL improves throughput by 48% compared to the Legacy FTL with no stream support.
IEEE Transactions on Consumer Electronics