Lazy-RTGC: A Real-Time Lazy Garbage Collection Mechanism with Jointly Optimizing Average and Worst Performance for NAND Flash Memory Storage Systems

Due to many attractive and unique properties, NAND flash memory has been widely adopted in mission-critical hard real-time systems and some soft real-time systems. However, the nondeterministic garbage collection operation in NAND flash memory makes it difficult to predict the system response time of each data request. This article presents Lazy-RTGC, a real-time lazy garbage collection mechanism for NAND flash memory storage systems. Lazy-RTGC adopts two design optimization techniques: on-demand page-level address mappings, and partial garbage collection. On-demand page-level address mappings can achieve high performance of address translation and can effectively manage the flash space with the minimum RAM cost. On the other hand, partial garbage collection can provide the guaranteed system response time. By adopting these techniques, Lazy-RTGC jointly optimizes both the average and the worst system response time, and provides a lower bound of reclaimed free space. Lazy-RTGC is implemented in FlashSim and compared with representative real-time NAND flash memory management schemes. Experimental results show that our technique can significantly improve both the average and worst system performance with very low extra flash-space requirements.

[1]  Mircea R. Stan,et al.  Modeling Power Consumption of NAND Flash Memories Using FlashPower , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[2]  Tei-Wei Kuo,et al.  Marching-Based Wear-Leveling for PCM-Based Storage Systems , 2015, TODE.

[3]  Gregory R. Ganger,et al.  The DiskSim Simulation Environment Version 4.0 Reference Manual (CMU-PDL-08-101) , 1998 .

[4]  Zili Shao,et al.  A Space Reuse Strategy for Flash Translation Layers in SLC NAND Flash Memory Storage Systems , 2012, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[5]  Tei-Wei Kuo,et al.  An index-based management scheme with adaptive caching for huge-scale low-cost embedded flash storages , 2013, TODE.

[6]  Yuan-Hao Chang,et al.  Implementation strategy for downgraded flash-memory storage devices , 2013, TECS.

[7]  Renhai Chen,et al.  BLog: block-level log-block management for NAND flash memorystorage systems , 2013, LCTES '13.

[8]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[9]  Li-Pin Chang,et al.  An adaptive, low-cost wear-leveling algorithm for multichannel solid-state disks , 2013, TECS.

[10]  Yi He,et al.  Reducing write activities on non-volatile memories in embedded CMPs via data migration and recomputation , 2010, Design Automation Conference.

[11]  Li-Pin Chang,et al.  Reducing asynchrony in channel garbage-collection for improving internal parallelism of multichannel solid-state disks , 2014, TECS.

[12]  Jongman Kim,et al.  Preemptible I/O Scheduling of Garbage Collection for Solid State Drives , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Qi Zhang,et al.  Optimizing translation information management in NAND flash memory storage systems , 2013, 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC).

[14]  Abir Awad Abir Awad , 2022 .

[15]  Heeseung Jo,et al.  Superblock FTL: A superblock-based flash translation layer with a hybrid address translation scheme , 2010, TECS.

[16]  Hai Zhou,et al.  Parallel CAD: Algorithm Design and Programming Special Section Call for Papers TODAES: ACM Transactions on Design Automation of Electronic Systems , 2010 .

[17]  Youngjae Kim,et al.  FlashSim: A Simulator for NAND Flash-Based Solid-State Drives , 2009, 2009 First International Conference on Advances in System Simulation.

[18]  Andy J. Wellings,et al.  Garbage Collection for Flexible Hard Real-Time Systems , 2010, IEEE Transactions on Computers.

[19]  Young-Jin Kim,et al.  LAST: locality-aware sector translation for NAND flash memory-based storage systems , 2008, OPSR.

[20]  Tong Zhang,et al.  Exploiting workload dynamics to improve SSD read latency via differentiated error correction codes , 2013, TODE.

[21]  Sang-Won Lee,et al.  A log buffer-based flash translation layer using fully-associative sector translation , 2007, TECS.

[22]  Spansion SLC NAND Flash Memory for Embedded , 2016 .

[23]  Zili Shao,et al.  An endurance-enhanced Flash Translation Layer via reuse for NAND flash memory storage systems , 2011, 2011 Design, Automation & Test in Europe.

[24]  Hsin-Hung Lin,et al.  Timing Analysis of System Initialization and Crash Recovery for a Segment-Based Flash Translation Layer , 2012, TODE.

[25]  Jianhua Li,et al.  Cooperating Virtual Memory and Write Buffer Management for Flash-Based Storage Systems , 2013, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[26]  Yiran Chen,et al.  Low cost power failure protection for MLC NAND flash storage systems with PRAM/DRAM hybrid buffer , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[27]  阿米尔·班 Flash File System , 1994 .

[28]  Yuan-Hao Chang,et al.  Block-Based Multi-Version B+-Tree for Flash-Based Embedded Database Systems , 2015, IEEE Trans. Computers.

[29]  Laurence T. Yang,et al.  A Real-Time Flash Translation Layer for NAND Flash Memory Storage Systems , 2012, IEEE Transactions on Multi-Scale Computing Systems.

[30]  Xiaoning Ding,et al.  A buffer cache management scheme exploiting both temporal and spatial localities , 2007, TOS.

[31]  Zili Shao,et al.  A Two-Level Caching Mechanism for Demand-Based Page-Level Address Mapping in NAND Flash Memory Storage Systems , 2011, 2011 17th IEEE Real-Time and Embedded Technology and Applications Symposium.

[32]  Yuan-Hao Chang,et al.  Garbage Collection for Multiversion Index in Flash-Based Embedded Databases , 2014, TODE.

[33]  Tei-Wei Kuo,et al.  An efficient B-tree layer implementation for flash-memory storage systems , 2007, TECS.

[34]  Christoph M. Kirsch,et al.  I/O resource management through system call scheduling , 2008, OPSR.

[35]  Sang Lyul Min,et al.  Hydra: A Block-Mapped Parallel Flash Memory Solid-State Disk Architecture , 2010, IEEE Transactions on Computers.

[36]  Tony Givargis,et al.  Deterministic service guarantees for nand flash using partial block cleaning , 2008, CODES+ISSS '08.

[37]  Nikil D. Dutt,et al.  A Reliability Enhanced Address Mapping Strategy for Three-Dimensional (3-D) NAND Flash Memory , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[38]  Tei-Wei Kuo,et al.  Real-time garbage collection for flash-memory storage systems of real-time embedded systems , 2004, TECS.

[39]  C. Kirsch Combo Drive : Optimizing Cost and Performance in a Heterogeneous Storage Device , 2009 .

[40]  Wei-Che Tseng,et al.  Write activity reduction on non-volatile main memories for embedded chip multiprocessors , 2013, TECS.

[41]  Chun Jason Xue,et al.  WCET-Aware Re-Scheduling Register Allocation for Real-Time Embedded Systems With Clustered VLIW Architecture , 2012, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[42]  V. T. Rajan,et al.  A real-time garbage collector with low overhead and consistent utilization , 2003, POPL '03.

[43]  Renhai Chen,et al.  Deterministic crash recovery for NAND flash based storage systems , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[44]  A Hybrid solid-state storage architecture for the performance, energy consumption, and lifetime improvement , 2010, HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture.

[45]  Tei-Wei Kuo,et al.  A space-efficient caching mechanism for flash-memory address translation , 2006, Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'06).

[46]  Taehyoun Kim,et al.  Bounding worst case garbage collection time for embedded real-time systems , 2000, Proceedings Sixth IEEE Real-Time Technology and Applications Symposium. RTAS 2000.

[47]  Tei-Wei Kuo,et al.  A reliability enhancement design under the flash translation layer for MLC-based flash-memory storage systems , 2013, TECS.

[48]  Tei-Wei Kuo,et al.  Booting Time Minimization for Real-Time Embedded Systems with Non-Volatile Memory , 2014, IEEE Transactions on Computers.

[49]  Sang-Won Lee,et al.  A survey of Flash Translation Layer , 2009, J. Syst. Archit..

[50]  Li-Pin Chang,et al.  On efficient wear leveling for large-scale flash-memory storage systems , 2007, SAC '07.

[51]  Tei-Wei Kuo,et al.  An Adaptive Two-Level Management for the Flash Translation Layer in Embedded Systems , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

[52]  Jung Ho Ahn,et al.  A Comprehensive Memory Modeling Tool and Its Application to the Design and Analysis of Future Memory Hierarchies , 2008, 2008 International Symposium on Computer Architecture.

[53]  Jianhua Li,et al.  A Unified Write Buffer Cache Management Scheme for Flash Memory , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[54]  Da-Wei Chang,et al.  BLAS: Block-level adaptive striping for solid-state drives , 2014, TODE.

[55]  Renhai Chen,et al.  DHeating: Dispersed heating repair for self-healing NAND flash memory , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).