Browse > Article

Analyzing Virtual Memory Write Characteristics and Designing Page Replacement Algorithms for NAND Flash Memory  

Lee, Hye-Jeong (이화여자대학교 컴퓨터공학과)
Bahn, Hyo-Kyung (이화여자대학교 컴퓨터공학과)
Abstract
Recently, NAND flash memory is being used as the swap device of virtual memory as well as the file storage of mobile systems. Since temporal locality is dominant in page references of virtual memory, LRU and its approximated CLOCK algorithms are widely used. However, cost of a write operation in flash memory is much larger than that of a read operation, and thus a page replacement algorithm should consider this factor. This paper analyzes virtual memory read/write reference patterns individually, and observes the ranking inversion problem of temporal locality in write references which is not observed in read references. With this observation, we present a new page replacement algorithm considering write frequency as well as temporal locality in estimating write reference behaviors. This new algorithm dynamically allocates memory space to read/write operations based on their reference patterns and I/O costs. Though the algorithm has no external parameter to tune, it supports optimized implementations for virtual memory systems, and also performs 20-66% better than CLOCK, CAR, and CFLRU algorithms.
Keywords
NAND Flash Memory; Page Replacement Algorithm; Virtual Memory;
Citations & Related Records
연도 인용수 순위
  • Reference
1 C. Park, J. Seo, S. Bae, H. Kim, S. Kim, B. Kim, "A low-cost memory architecture with NAND XIP for mobile embeddie systems," Proceedigns of CODES+ISSS, 2003.
2 S. Bansal, DS. Modha, "CAR: Clock with Adaptive Replacement," Proceedings of 3rd USENIX Conference on File and Storage Technologies,2004.
3 S. Park, D. Jung, J. Kang, J. Kim, J. Lee, "CFLRU: replacement algorithm for flash memory," Proceedings of the 2006 intermational conference on Compilers, architecture and symthesis for embedded systems, 2006.
4 E. G. Coffman, P. J. Denning, Operating Systems Theory, Prentice-Hall, Ch.6, pp.241-283, 1973.
5 http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_LargeBlock/4Gbit/K9F4G08U0A/ds_k9xxg08uxa_rev10.pdf
6 http://valgrind.org/
7 D. Bovet, M. Cesati, "Understanding the Linux Kenel," O'Reilly, 2002.
8 Y. Zhou, J. F. Phibin, "The multi-queue replacement algorithm for second level buffer caches," Proceedings of the 2001 USENIX Annual Technical conference, 2001.
9 R. van Riel, "Page replacement in Linux 2.4 memory management," Proceedings of the 2001 USENIX Annual Technical conference, 2001
10 S. Jing, X. Zhang, "LIRS: An efficient low interreference recency set replacement policy to improve buffer cache performance," Proceedings of the ACM SIGMETRICS conference, 2002.
11 N. Nethercote, J. Seward, "Valgrind: A Program Supervision Framework," Electronic Notes in Theoretical Computer Science, 2003.
12 N. Megiddo, DS. Modha, "ARC: A Self-tuning, Low Overhead Replacement Cache," Proceedings of the 2nd USENIX Conference on File and Storage Technologies, 2003.
13 T. Johnson, D. Shasha, "2Q: A low overhead high performance buffer management repiacement algorithm," Proceedings of the VLDB conferenect, 1994.
14 C. Park, J. Kang, S. Park, J. Kim, "Energy-Aware Demand PAging on NAND Flash-based Embedded Storages," Proceedings of International Symposium on Low Power Electronics and Design, 2004.