Skip to main content
Log in

Data pattern aware FTL for SLC+MLC hybrid SSD

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

A hybrid solid-state drive (SSD) consisting of both single-level-cell (SLC) and multi-level-cell (MLC) flash chips achieves a response time as fast as an SLC-flash-based SSD while maintaining the price of an MLC-flash-based SSD. It is supported by a software layer called flash translation layer (FTL) that contains an algorithm to efficiently store hot and cold data in the SLC- and MLC-flash chips, respectively. Unfortunately, previous FTLs for hybrid SSDs depended hot data identification solely on the write commands’ request size and reused former address mapping algorithms for managing the SLC- and MLC-flash chips. To address this limitation, we propose a “data pattern aware FTL (DPA-FTL)” algorithm. DPA-FTL enhances the hot data identification process by considering two characteristics of hot data: frequent update and irregular allocation. Furthermore, it compares former address mapping algorithms and selects a more appropriate algorithm for the hybrid SSD. According to our performance evaluation, DPA-FTL reduces the overall number of write and erase operations and reduces the deviation of erase operations.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

Notes

  1. Program/erase cycle limit: the maximum number of writes/erases allowed for each block.

  2. Hot data: frequently updated data

  3. Partial programming: byte-unit-write operation which allows to re-access a page without an erase operation.

  4. Logical page number: fixed logical group of logical sectors.

  5. Random data in/out: a technique which allows to write/modify (random data in) or read (random data out) in the unit of byte.

  6. Merge operation: a process of reclaiming a data block.

  7. Log-block pool: a list which contains the physical addresses of unallocated log-blocks.

References

  1. Seong YJ, Nam EH, Yoon JH, Kim H, Choi J-Y, Lee S, Bae YH, Lee J, Cho Y, Min SL (2010) Hydra: a block-mapped parallel flash memory solid-state disk architecture. IEEE Trans Comput 59(7):905–921

  2. Samsung Electronics (2013) “SLC SSD”, datasheet

  3. Samsung Electronics (2013) MLC SSD”, datasheet

  4. Chang LP (2010) A hybrid approach to NAND-flash-based solid-state disks. IEEE Trans Comput 59(10):1337–1349

    Article  MathSciNet  Google Scholar 

  5. Shim G, Park Y, Park KH (2011) A hybrid flash translation layer with adaptive merge for SSDs. ACM Trans Storage, 6(4)

  6. Chang YH, Wu PL, Kuo TW, Hung SH (2012) An adaptive file-system-oriented FTL mechanism for flash-memory storage systems. ACM Trans Embed Comput Syst 11(1):1–19

    Article  Google Scholar 

  7. Lee S, Shin D, Kim Y, Kim J (2008) LAST: locality-aware sector translation for NAND flash memory-based storage systems. In: Proceeding of IEEE international workshop on storage and I/O virtualization, performance, energy, evaluation and dependability (SPEED08) pp 36–42

  8. Kwon SJ, Ranjitkar A, Ko Y-B, Chung T-S (2011) FTL algorithms for NAND-type flash memories. Des Autom Embed Syst 15(3–4):191–224

    Article  Google Scholar 

  9. Liu Z, Yue L, Wei P, Jin P, Xiang X (2009) An adaptive block-set based management for large-scale flash memory. Proceedings of the 2009 ACM symposium on applied, computing, pp 1621–1625

  10. Jung S, Lee Y, Song YH (2010) A process-aware hot/cold identification scheme for flash memory storage systems. IEEE Trans Consum Electron 56(2):339–347

    Article  Google Scholar 

  11. Park D, Du DHC (2011) Hot data identification for flash-based storage systems using multiple bloom filters. IEEE 27th symposium on mass storage systems and technologies (MSST), pp 23–27

  12. Samsung Electronics (2013) Page program addressing For MLC NAND application note

  13. Cho H, Shin D, Eom YI (2009) KAST: K-associative sector translation for NAND flash memory in real-time systems. In: Design, automation and test in Europe (DATE), pp 507–512

  14. Kim J, Kim JM, Noh SH, Min SL, Cho Y (2002) A space-efficient flash translation layer for compact flash systems. IEEE Trans Consum Electron 48(2):366–375

    Article  Google Scholar 

  15. Hsieh JW, Wu CH, Chiu GM (2012) MFTL: a design and implementation for MLC flash memory storage systems. ACM Trans Storage 8(2):1–29

    Article  Google Scholar 

  16. Liu D, Wang Y, Qin Z, Shao Z, Guan Y (2012) A space reuse strategy for flash translation layers in SLC NAND flash memory storage systems. IEEE Trans Very Large Scale Integr Syst 20(6):1094–1107

    Article  Google Scholar 

  17. Lee S-W, Park D-J, Chung T-S, Lee D-H, Park S, Song H-J (2007) A log buffer based flash transition layer using fully associative sector translation. ACM Trans Embed Comput Syst 6(3)

  18. Park C, Cheon W, Kang J-U, Roh K, Cho W, Kim J-S (2008) A reconfigurable FTL (flash translation layer) architecture for NAND flash-based applications. ACM Trans Embed Comput Syst 7(4)

  19. Jung D, Kang JU, Jo H, Kim JS (2010) Superblock FTL: a superblock-based flash translation layer with a hybrid address translation scheme. ACM Trans Embed Comput Syst 9(4):127–130

    Article  Google Scholar 

  20. Qin Z, Wang Y, Liu D, Shao Z, Guan Y (2011) MNFTL: an efficient flash translation layer for MLC NAND flash memory storage systems. Proceedings of the 48th design automation conference (DAC), pp 17–22

  21. Russinovich M (2013) Windows sysinternals: Diskmon, Diskmon

  22. Kim J, Seol J, Maeng SR (2010) Buffer management issue in designing SSDs for LFSs. IEICE Trans Inf Syst 93–D(6):1644–1647

    Article  Google Scholar 

  23. Jin S, Kim J-H, Kim J, Huh J, Maeng S (2011) Sector log: fine-grained storage management for solid state drives. SAC 2011:360–367

    Google Scholar 

  24. Chung T-S, Park H-S (2007) STAFF: a flash driver algorithm minimizing block erasures. J Syst Archit 53(12):889–901

    Article  Google Scholar 

  25. Kwon SJ, Chung T-S (2008) An efficient and advanced space-management technique for flash memory using reallocation blocks. IEEE Trans Consum Electron 54(2):631–638

    Article  Google Scholar 

  26. Jung M, Kandemir M (2013) Revisiting widely held SSD expectations and rethinking system-level implications. SIGMETRICS, pp 203–216

  27. Ha B, Cho H-J, Eom YI (2011) A study on the block fragmentation problem of SSD based on NAND flash memory. ICUIMC

  28. Jung D, Chae Y-H, Jo H, Kim J, Lee J (2007) A group-based Wear-leveling algorithm for large-capacity flash memory storage systems. Proceedings of the international conference on compilers, architecture, and synthesis for embedded systems (CASES 2007), Austria

  29. Hsieh J-W, Chang L-P, Kuo T-W (2006) Efficient identification of hot data for flash memory storage systems. ACM Trans Storage 2(1):22–40

    Article  Google Scholar 

  30. Chang RC (2006) Method and apparatus for managing an erase count block. U.S. Patents, No. 7,103,732

  31. Chu Y-S, Hsieh JW, Chang Y-H, Kuo T-W (2009) A set-based mapping strategy for flash-memory reliability enhancement. Design, automation and test in Europe (DATE), pp 405–410

  32. Chang L-P (2007) On efficient wear leveling for large-scale flash-memory storage systems. Proceedings of the 2007 ACM symposium on applied, computing, pp 11–15

  33. Kwon O, Koh K (2007) Swap-aware garbage collection for nand flash memory based embedded systems. 7th IEEE international conference on computer and information technology (CIT), pp 787–792

  34. Chang Y-H, Hsieh J-W, Kuo T-W (2010) Improving flash wear-leveling by proactively moving static data. IEEE Trans Comput 59(1):53–65

    Article  MathSciNet  Google Scholar 

  35. Hu Y, Jiang H, Feng D, Tian L, Luo H, Zhang S (2011) Performance impact and interplay of SSD parallelism through advanced commands. Allocation strategy and data granularity (ICS 2011). pp 96–107

  36. Bjørling M, Axboey J, Nellansy D, Bonnet P (2013) Linux Block IO: introducing multi-queue SSD access on multi-core systems. SYSTOR’13 Proceedings of the 6th international systems and storage conference

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Se Jin Kwon.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kwon, S.J., Chung, TS. Data pattern aware FTL for SLC+MLC hybrid SSD. Des Autom Embed Syst 19, 101–127 (2015). https://doi.org/10.1007/s10617-014-9138-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10617-014-9138-5

Keywords

Navigation