Improving the Read Performance of OneNAND Flash Memory using Virtual I/O Segment

가상 I/O 세그먼트를 이용한 OneNAND 플래시 메모리의 읽기 성능 향상 기법

  • 현승환 (서울대학교 컴퓨터공학부) ;
  • 고건 (서울대학교 컴퓨터공학부)
  • Published : 2008.10.15

Abstract

OneNAND flash is a high-performance hybrid flash memory that combines the advantages of both NAND flash and NOR flash. OneNAND flash has not only all virtues of NAND flash but also greatly enhanced read performance which is considered as a downside of NAND flash. As a result, it is widely used in mobile applications such as mobile phones, digital cameras, PMP, and portable game players. However, most of the general purpose operating systems, such as Linux, can not exploit the read performance of OneNAND flash because of the restrictions imposed by their virtual memory system and block I/O architecture. In order to solve that problem, we suggest a new approach called virtual I/O segment. By using virtual I/O segment, the superior read performance of OneNAND flash can be exploited without modifying the existing block I/O architecture and MTD subsystem. Experiments by implementations show that this approach can reduce read latency of OneNAND flash as much as 54%.

OneNAND 플래시는 NAND 플래시와 NOR 플래시의 장점을 모두 가진 고성능 하이브리드 플래시 메모리이다. OneNAND 플래시는 NAND 플래시의 장점들을 그대로 가지고 있을 뿐 아니라, 그동안 NAND 플래시의 단점으로 지적되던 느린 읽기 성능을 획기적으로 개선하였다. 그 결과 OneNAND 플래시는 휴대폰 및 디지털 카메라, PMP, 휴대용 게임기와 같은 고성능 휴대용 정보기기를 위한 최적의 스토리지 솔루션으로 각광받고 있다. 하지만 Linux를 비롯하여 현재 사용되고 있는 대부분의 범용 운영체제들은 가상 메모리와 블록 I/O 계층 구조의 제약으로 인해 OneNAND 플래시의 뛰어난 위기 성능을 제대로 활용하지 못하는 문제를 안고 있다. 이에 본 연구에서는 기존의 소프트웨어 계층 구조 하에서 OneNAND 플래시의 읽기 성능을 최대한 활용하기 위한 기법인 가상 I/O 세그먼트의 활용을 제안한다. 실제 구현을 통한 실험 결과는 제안된 기법이 OneNAND 플래시의 읽기 수행 시간을 기존에 비해 최고 54%까지 단축할 수 있음을 증명하였다.

Keywords

References

  1. OneNANDTM Features and Performance, 2005 http://www.samsung.com/global/business/semiconductor/products/fusionmemory/Products_ProductOverview.html
  2. M. Santarini, 'NAND versus NOR: Which flash is best for bootin' your next system?,' in Electronics, Design, Strategy, News (EDN). vol. 21, 2005, pp. 41-48
  3. J. In, I. Shin, and H. Kim, 'SWL: a search-while-load demand paging scheme with NAND flash memory,' in LCTES'07, San Diego, California, USA, 2007, pp. 217-226
  4. E. Gal and S. Toledo, 'Alogorithms and Data Structures for Flash Memories,' ACM Computing Surveys, vol. 37, pp. 138-163, 2005 https://doi.org/10.1145/1089733.1089735
  5. 이수관, 민상렬, 조유근, '플래시 메모리 관련 최근 기술 동향,' 정보과학회지, vol. 24, pp. 99-106, 2006
  6. C. Park, J.-U. Kang, S.-Y. Park, and J.-S. Kim, 'Energy-aware demand paging on NAND flash-based embedded storages,' in proceedings of ISLPED, California, USA, 2004, pp. 338-343
  7. H. Jung, K. Yoon, H. Shim, S. Park, S. Kang, and J. Cha, 'LIRS-WSR: Integration of LIRS and Writes Sequence Reordering for Flash Memory,' Lecture Notes in Computer Science, vol. 4705, pp. 224-237, 2007 https://doi.org/10.1007/978-3-540-74472-6_18
  8. Y. Yoo, H. Lee, Y. Ryu, and H. Bahn, 'Page Replacement Algorithms for NAND Flash Memory Storages,' Lecture Notes in Computer Science, vol. 4705, pp. 201-212, 2007 https://doi.org/10.1007/978-3-540-74472-6_16
  9. D. Jung, J.-S. Kim, S.-Y. Park, J.-U. Kang, and J. Lee, 'FASS: A Flash-Aware Swap System,' in International Workshop on Software Support for Portable Storage (IWSSPS), 2005
  10. S. Park, H. Lim, H. Chang, and W. Sung, 'Compressed Swapping for NAND Flash Memory Based Embedded Systems' LNCS, vol. 3553, pp. 314-323, 2005
  11. Y. Joo, Y. Choi, C. Park, S. W. Chung, E.-Y. Chung, and N. Chang, 'Demand Paging for OneNANDTM Flash eXecute-in-place,' in Proceedings of CODES+ISSS'06, Seoul, Korea, 2006, pp. 229-234
  12. Y. Joo, J. Park, S. W. Chung, E.-Y. Chung, and N. Chang, 'Delayed Dual Buffering: Reducing Page Fault Latency in Demand Paging for OneNAND Flash Memory,' 전자공학회 논문지, vol. 44, pp. 270-278, 2007
  13. Samsung OneNANDTM KFXG16Q2M-DEB6 data sheets, http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=160&partnum=KFH1G16Q2M
  14. Memory Technology Device Subsystem for Linux - homepage, http://www.linux-mtd.infradead.org
  15. Daniel P. Bovet, and Marco Cesati, Understanding the Linux Kernel, 3rd Ed., p.560, O'reilly, 2006
  16. TI OMAP 2420 Platform, http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=11990&contentId=4671
  17. Qtopia GUI Platform, http://trolltech.com/products/Qtopia