Skip to main content
Log in

Application-aware deduplication for performance improvement of flash memory

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

Abstract

Deduplication in flash memory improves performance as well as reliability thanks to mitigating drawbacks of flash memory, which is done by eliminating duplicate data from flash memory. However, existing works mainly focus on efficiency of runtime data management without considering program flows. We propose a new application-aware deduplication method called unmodified region detection (URD) for flash memory. URD reconstructs loop blocks of an application program to avoid duplicate update operations, which aims to reduce the size of in-place updated data. This entails information gathering, loop reconstruction and code instrumentation phases. From experiments, we found that, in our URD scheme, block-based deduplication always improves performance regardless of the duplication degree of write traffic, while page-based deduplication obtains performance enhancement or performance degradation, depending on the duplication degree of write traffic.

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
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others

Notes

  1. \(\hbox {URD}_\mathrm{B}\) has the same procedures as \(\hbox {URD}_\mathrm{P}\).

  2. The page number (#) is the logical page number [2].

  3. As a special case, log block-based FTL with 1:1 design value is called Block Associativity Sector Translation (BAST) [3].

  4. MTRON SSD MOBI 3500 SATA 3.5” 16 GB.

References

  1. Intel Corporation (1998) Understanding the flash translation layer (FTL) specification. Intel Technical Report AP-684

  2. Chung TS, Park DJ, Park S, Lee DH, Lee SW, Song HJ (2009) A survey of flash translation layer. J Syst Archit 55:332–343

    Article  Google Scholar 

  3. Kim JS, Kim JM, Noh SH, Min SL, Cho YK (2002) A space-efficient flash translation layer for compactflash systems. IEEE Trans Consum Electron 48:366–375

    Article  Google Scholar 

  4. Lee SW, Park DJ, Chung TS, Lee DH, Park S, Song HJ (2007) A log buffer-based flash translation layer using fully-associative sector translation. ACM Trans Embed Comput Syst. doi:10.1145/1275986.1275990

    Google Scholar 

  5. Jung D, Kang J, Jo H, Kim JS, Lee J (2010) Superblock FTL: a superblock-based flash translation layer with a hybrid address translation scheme. ACM Trans Embed Comput Syst 9:1–41

    Article  Google Scholar 

  6. Park C, Cheon W, Kang J, Roh K, Cho W, Kim JS (2008) A re-configurable FTL architecture for NAND flash-based applications. ACM Trans Embed Comput Syst 7:1–23

    Google Scholar 

  7. Kim H, Ahn S (2008) BPLRU: a buffer management scheme for improving random writes in flash storage. In: Proceeding of USENIX conference file and storage technologies (FAST), pp 1–14

  8. Jo H, Kang JU, Park SY, Kim JS, Lee J (2006) FAB: flash-aware buffer management policy for portable media players. IEEE Trans Consum Electron 52:485–493

    Article  Google Scholar 

  9. Kang S, Park S, Jung H, Shim H, Cha J (2009) Performance trade-offs in using nvram write buffer for flash memory-based storage devices. IEEE Trans Comput 58:744–758

    Article  MathSciNet  Google Scholar 

  10. Wu G, Eckart B, He X (2010) BPAC: an adaptive write buffer management scheme for flash-based solid state drives. In: Proceeding of IEEE control massive data storage (MSST), pp 1–6

  11. Chang YH, Hsieh JW, Kuo TW (2007) Endurance enhancement of flash-memory storage systems: An efficient static wear leveling design. In: Proceeding of international conference design automation conferences (DAC), pp 212–217

  12. Boboila S, Desnoyers P (2010) Write endurance in flash drives: measurements and analysis. In: Proceeding of USENIX conference on file and storage technologies (FAST)

  13. Chen F, Luo T, Zhang X (2011) CAFTL: a content-aware flash translation layer enhancing the lifespan of flash memory based solid state drives. In: Proceeding of USENIX conference on file and storage technologies (FAST), pp 77–90

  14. Kim J, Lee C, Lee S, Son S, Choi J, Yoon S, Lee HU, Kang S, Won Y, Cha J (2012) Deduplication in SSDs: model and quantitative analysis. In: Proceeding of IEEE control massive data storage (MSST), pp 1–12

  15. Gupta A, Pisolkar R, Urgaonkar B, Sivasubramaniam A (2011) Leveraging value locality in optimizing NAND flash-based SSDs. In: Proceeding of USENIX conference on file and storage technologies (FAST), pp 91–103

  16. Meister D, Brinkmann A (2010) dedupv1: improving deduplication throughput using solid state drives (SSD). In: Proceeding of IEEE conference on massive data storage (MSST), pp 1–6

  17. Douglis F, Caceres R, Kaashoek MF, Li K, Marsh B, Tauber JA (1994) Storage alternatives for mobile computers. In: Proceeding of USENIX symposium on operating systems design and implementation (OSDI), pp 25–37

  18. Samsung Electronics (2004) NAND flash memory & smartmedia data book

  19. Debnath B, Sengupta S, Li J (2010) ChunkStash: speeding up inline storage deduplication using flash memory. In: Proceeding of USENIX conference on file and storage technologies (FAST)

  20. Kim S, Kwon K, Kim C, Jang C, Lee J, Min SL (2010) Demand paging techniques for flash memory using compiler post-pass optimizations. ACM Trans Embed Comput Syst 10:1–29

    Article  Google Scholar 

  21. Lin CC, Chen CL, Tseng CH (2007) Source code arrangement of embedded Java virtual machine for NAND flash memory. In: Proceeding of international conference on international symposium on communications and information technologies (ISCIT), pp 152–157

  22. Paik JY, Cho ES, Chung TS (2010) Reorganizing data blocks in flash memory by program translation. In: Proceeding of IEEE international conference on computer and information technology (CIT), pp 1948–1953

  23. Paik JY, Cho ES, Chung TS (2009) Performance improvement for flash memories using loop optimization. In: Proceeding of IEEE international computational science and engineering (CSE), pp 508–513

  24. Muchnick SS (1998) Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., San Francisco

    Google Scholar 

  25. Wolfe M (1989) More iteration space tiling. In: Proceeding of ACM/IEEE conference on supercomputing, pp 655–664

  26. Panda R, Nakamura H, Dutt N, Nicolau A (1999) Augmenting loop tiling with data alignment for improved cache performance. IEEE Trans Comput 48:142–149

    Article  Google Scholar 

  27. Bik A, Wijshoff HAG, Hin D (1996) Iteration space partitioning. In: Proceeding of conference on international conference and exhibition on high-performance computing and networking, pp 475–484

  28. The GIMP Team. Gnu image manipulation program. http://www.gimp.org/. Accessed 7 Nov 2013

Download references

Acknowledgments

This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (No. 2010-0013386).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eun-Sun Cho.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Paik, JY., Chung, TS. & Cho, ES. Application-aware deduplication for performance improvement of flash memory. Des Autom Embed Syst 19, 161–188 (2015). https://doi.org/10.1007/s10617-014-9142-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10617-014-9142-9

Keywords

Navigation