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.
Similar content being viewed by others
References
Intel Corporation (1998) Understanding the flash translation layer (FTL) specification. Intel Technical Report AP-684
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
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
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
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
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
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
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
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
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
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
Boboila S, Desnoyers P (2010) Write endurance in flash drives: measurements and analysis. In: Proceeding of USENIX conference on file and storage technologies (FAST)
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
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
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
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
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
Samsung Electronics (2004) NAND flash memory & smartmedia data book
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)
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
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
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
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
Muchnick SS (1998) Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., San Francisco
Wolfe M (1989) More iteration space tiling. In: Proceeding of ACM/IEEE conference on supercomputing, pp 655–664
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
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
The GIMP Team. Gnu image manipulation program. http://www.gimp.org/. Accessed 7 Nov 2013
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
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-014-9142-9