Design and Performance Evaluation of a Flash Compression Layer for NAND-type Flash Memory Systems

NAND형 플래시메모리를 위한 플래시 압축 계층의 설계 및 성능평가

  • 임근수 (삼성 종합기술원) ;
  • 반효경 (이화여자대학교 컴퓨터학과) ;
  • 고건 (서울대학교 컴퓨터공학부)
  • Published : 2005.04.01

Abstract

NAND-type flash memory is becoming increasingly popular as a large data storage for mobile computing devices. Since flash memory is an order of magnitude more expensive than magnetic disks, data compression can be effectively used in managing flash memory based storage systems. However, compressed data management in NAND-type flash memory is challenging because it supports only page-based I/Os. For example, when the size of compressed data is smaller than the page size. internal fragmentation occurs and this degrades the effectiveness of compression seriously. In this paper, we present an efficient flash compression layer (FCL) for NAND-type flash memory which stores several small compressed pages into one physical page by using a write buffer Based on prototype implementation and simulation studies, we show that the proposed scheme offers the storage of flash memory more than $140\%$ of its original size and expands the write bandwidth significantly.

최근 휴대용 정보기기의 사용이 급증함에 따라 NAND형 플래시메모리를 시스템의 보조기억장치로 사용하는 사례가 급증하고 있다. 하지만, 전통적인 보조기억장치인 하드디스크에 비해 NAND형 플래시메모리는 단위 공간당 비용이 수십배 가량 높아 저장 공간의 효율적인 관리가 필요하다 저장 공간을 효율적으로 사용하게 하는 대표적인 방법으로 데이타 압축 기법이 있다. 하지만, NAND형 플래시메모리에서는 압축 기법의 적용이 쉽지 않다. 이는 NAND형 플래시메모리가 페이지 단위 입출력만을 지원하여 압축 데이타가 플래시 페이지보다 작은 경우 내부 단편화 현상을 발생시켜 압축의 이득을 심각하게 감쇄시키기 때문이다. 이러한 문제를 해결하기 위해 본 논문에서는 작은 크기의 압축 데이타를 쓰기 버퍼를 통해 그룹화한 후 하나의 플래시 페이지에 저장하는 플래시 압축 계충을 설계하고 성능을 평가한다. 성능평가 결과 제안하는 플래시 압축 계층은 플래시메모리의 저장 공간을 $40\%$ 이상 확장하며 쓰기 대역폭을 크게 개선함을 확인할 수 있었다.

Keywords

References

  1. F. Douglis, R. Caceres, F. Kaashoek, K. Li, B. Marsh, and J.A. Tauber, 'Storage Alternatives for Mobile Computers,' In Proceedings of the 1st USENIX Symposium on Operating System Design and Implementation, pp. 25-37, 1994
  2. Intel Corporation, '3 Volt Synchronous Intel StrataFlash Memory,' http://www.intel.com/
  3. Samsung Electronics, '128M ${\times}$ 8 Bit / 64M ${\times}$ 16 Bit NAND Flash Memory,' http://www.samsungelectronics.com/
  4. M. Kjelso and S. Jones, 'Memory Management in Flash-Memory Disks with Data Compression,' Lecture Notes in Computer Science, Springer Verlag, Vol. 986, pp. 399-413, 1995
  5. S. Wells and D. Clay, 'Flash Solid-State Drive with 6MB/s Read/Write Channel and Data Compression,' In Proceedings of the 40th IEEE International Conference on Solid-State Circuits, pp. 52-53, 1993 https://doi.org/10.1109/ISSCC.1993.280087
  6. M. Wu and W. Zwaenepoel, 'eNVy: A Non-Volatile, Main Memory Storage System,' In Proceedings of the 6th Symposium on Architectural Support for Programming Languages and Operating Systems, pp. 86-97, 1994
  7. J. Kim, J. M. Kim, S. H. Noh, S. L.. Min, and Y. Cho, 'A Space-Efficient Flash Translation Layer for CompactFlash Systems,' IEEE Transactions on Consumer Electronics, Vol. 48, No.2, pp. 366-375, 2002 https://doi.org/10.1109/TCE.2002.1010143
  8. Intel Corporation, 'Understanding the flash translation layer (FTL) specification,' http://developer.intel.com/
  9. A. Kawaguchi, S. Nishioka, and H. Motoda, 'A Flash Memory Based File System,' In Proceedings of the USENIX 1995 Winter Technical Conference, pp. 155-164, 1995
  10. MTD, 'Memory Technology Device (MTD) subsystem for Linux,' http://www.linux-mtd.infradcad.org/
  11. L.-P. Chang and T.-W. Kuo, 'An Efficient Management Scheme for Large-Scale Flash Memory Storage Systems,' In Proceedings of the ACM Symposium on Applied Computing, pp. 862-868, 2004
  12. R. Bez, E. Camerlenghi, A. Modelli, and A. Visconti, 'Introduction to Flash Memory,' In Proceedings of the IEEE, Vol. 91, No.4, pp. 489-502, April 2003 https://doi.org/10.1109/JPROC.2003.811702
  13. N. H. E. Weste and K. Eshraghian, Principles of CMOS VLSI Design, 2nd Ed., Addison-Wesley, 1994
  14. D. Woodhouse, 'JFFS: The Journaling Flash File System,' In Proceedings of the Ottawa Lima Symposium, 2001. (Availble at http://sources.redhat.com/jffs2/)
  15. The Yet Another Flash Filing System Project, http://www.aleph1.co.uk/yaffs/
  16. M. Rosenblum, and J. K. Ousterhout, 'The Design and Implementation of a Log-Structured File System,' ACM Transactions on Computer Systems, Vol.10, No.1, pp.26-52, 1992 https://doi.org/10.1145/146941.146943
  17. N. K. Edel, D. Tuteja, E. L. Miller, and S. A. Brandt, 'MRAMFS: A Compressing File System for Non-Volatile RAM,' In Proceedings of the IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, pp. 596-603, 2004 https://doi.org/10.1109/MASCOT.2004.1348317
  18. A. Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts, 6th Ed., pp. 285-287, John Wiley & Sons Inc., 2003
  19. M. Kjelso, M. Gooch, and S. Jones, 'Design and Performance of a Main Memory Hardware Data Compressor,' In Proceedings the 22nd Euromicro Conference, IEEE Computer Society Press, pp. 422-430, 1996 https://doi.org/10.1109/EURMIC.1996.546466
  20. R. Arnold and T. Bell, 'A Corpus for the Evaluation of Lossless Compression Algorithms,' In Proceedings of the 7th IEEE Data Compression Conference, pp. 201-210, 1997 https://doi.org/10.1109/DCC.1997.582019