FlaSim: A FTL Emulator using Linux Kernel Modules

FlaSim: 리눅스 커널 모듈을 이용한 FTL 에뮬레이터

  • 최화영 (한국외국어대학교 컴퓨터 및 정보통신공학과) ;
  • 김상현 (한국외국어대학교 컴퓨터 및 정보통신공학과) ;
  • 이승원 (한국외국어대학교 정보통신공학과) ;
  • 박상원 (한국외국어대학교 정보통신공학과)
  • Published : 2009.11.15

Abstract

Many researchers have studied flash memory in order to replace hard disk storages. Many FTL algorithms have been proposed to overcome physical constraints of flash memory such as erase-before-write, wear leveling, and poor write performance. Therefore, these constraints should be considered for testing FTL algorithms and the performance evaluation of flash memory. As doing the experiments, we suffer from several problems with costs and settings in experimental configuration. When we, for example, replay the traces of Oracle to evaluate the I/O performance with flash memory, it is hard to extract exact traces of I/O operations in Oracle. Since there are only write operations in the log, it is impossible to gather read operations. In MySQL and SQLite, we can gather the read operations by changing I/O functions in the source codes. But it is not easy to search for the exact points about I/O and even if we can find out the points, we might get wrong results depending on how we modify source codes to get I/O traces. The FlaSim proposed in this paper removes the difficulties when we evaluate the performance of FTL algorithms and flash memory. Our Linux drivers emulate the flash memory as a hard disk. And we can easily obtain the usage statistics of flash memory such as the number of write, read, and erase operations. The FlaSim can be gracefully extended to support the additional modules implemented by novel algorithms and ideas. In this paper, we describe the structure of FTL emulator, development tools and operating methods. We expect this emulator to be helpful for many experiments and research with flash memory.

플래시 메모리의 성능평가 실험 환경 구성은 플래시 메모리가 장착된 제품들이 동작하는 시스템으로 이뤄진다. 이와 같은 방법은 물리적이고 비용적인 제약이 따르게 된다. 또한 실험에 쓰이는 입력 데이터와 FTL 알고리즘의 성능평가를 위한 결과 데이터인 트레이스의 추출 방법이 까다롭고 힘들다. Oracle의 경우 트레이스 추출이 불가능하고, MySQL, SQLite는 트레이스 추출이 가능하더라도 결과의 정확성이 보장되지 않는 문제점이 있다. 따라서 본 논문에서는 디바이스 드라이버를 통해 물리적 제약을 없애고 트레이스 추출을 쉽고 간편하게 하여 정확한 실험 결과 분석이 용이하도록 FTL 에뮬레이터를 설계하고 구현한 내용에 대해 다룬다. 본 논문에서 제안한 FTL 에뮬레이터인 FlaSim은 플래시 메모리의 데이터 저장 메커니즘과 동일한 동작을 하도록 구현하고 리눅스 커널 모듈을 사용하여 필요한 기능을 추가할 수 있다. FlaSim은 모듈 적재 방식을 사용하기 때문에 FTL 알고리즘 및 플래시 메모리에 대한 실험의 확장성을 향상시킨다. 또한 다양한 응용프로그램에 적용이 쉽고, 플래시 메모리에 대한 실험의 제약이 되는 물리적인 비용을 줄일 수 있다. 게다가 트레이스 추출하는 데 쉽고 효율적인 방법을 제공하여 결과 도출 및 분석 시 시간적, 시스템적 제약을 받지 않아 효율성이 큰 장점이 있다. 추후 많은 FTL 알고리즘 및 플래시 메모리에 대한 실험과 연구에 도움이 될 것으로 예상된다.

Keywords

References

  1. S. W. Park, “Flash memory and Database,” Journal of KIISE, vol.25, no.6, pp.40-47, June. 2007 (in Korean)
  2. W. Lee, B. K. Moon, “Design of Flash-Based DBMS: An In-Page Logging Approach” ACM SIGMOD International Conference on Management of Data : Database technology for novel appli-cations, pp.55-66, June. 2007. Bejing, China
  3. W. J. Park, S. H. Park, S. W. Park, “Performance Analysis of Flash Translation Layer Algorithms for Windows-based Flash Memory Storage Device,” Journal of KIISE : Computing Practices and Letters, vol.13, no.4, pp.213-225, Aug. 2007 (in Korean)
  4. H. Park. J. Y. Jang, Y. J. Seo, W. J. Park, S. W. Park, “Performance Analysis of Flash Translation Layer using TPC-C Benchmark,” Journal of KIISE : Computing Practices and Letters, vol.14, no.2, Apr. 2008 (in Korean)
  5. C. Jim, “NAND Flash 101: An Introduction to NAND Flash and How to Design it In to Your Next Product,” Micron Technology Inc., Technical Note, TN-29-19, Nov. 2006
  6. A. Ban “Flash file system optimized for page-mode flash technologies,” United States Patent, patent no.5937425, August 10. 1999
  7. J. S. Kim, J. M. Kim. S. H. Noh, S. L. Min, Y. K. Cho, “A space-efficient flash translation layer for Compact Flash systems,” IEEE Transactions on Consumer Electronics, vol.48, no.2, May. 2002 https://doi.org/10.1109/TCE.2002.1010143