본 논문에서는 실제 플래시 메모리와 동일한 특성을 갖는 플래시 메모리 시뮬레이터를 설계 및 구현한 내용을 설명한다. 본 시뮬레이터는 생산 방식, 전체 용량, 블록 크기, 페이지 크기 등 플레시 메모리의 특성을 변화시키면서 실험할 수 있을 뿐만 아니라 정확한 수행 시간과 인자 검증 기능을 제공함으로써, 운영체제 입장에서는 실제 플래시 메모리 장치를 사용하는 효과를 얻을 수 있다. 또한, 내부 루틴의 수행 시간 로깅 기능을 제공함으로써 플래시 메모리 관리 소프트웨어의 병목 지점을 판단할 수 있도록 하였다. 마지막으로, Linux 운영체제 환경에 구현된 시뮬레이터와 실제 플래시 메모리를 장착한 테스트 보드에서 응용 프로그램의 성능 측정 결과를 비교함으로써 본 시뮬레이터가 실제 플래시 메모리 장치 대용으로 사용할 수 있음을 보였다.
본 논문에서는 실제 플래시 메모리와 동일한 특성을 갖는 플래시 메모리 시뮬레이터를 설계 및 구현한 내용을 설명한다. 본 시뮬레이터는 생산 방식, 전체 용량, 블록 크기, 페이지 크기 등 플레시 메모리의 특성을 변화시키면서 실험할 수 있을 뿐만 아니라 정확한 수행 시간과 인자 검증 기능을 제공함으로써, 운영체제 입장에서는 실제 플래시 메모리 장치를 사용하는 효과를 얻을 수 있다. 또한, 내부 루틴의 수행 시간 로깅 기능을 제공함으로써 플래시 메모리 관리 소프트웨어의 병목 지점을 판단할 수 있도록 하였다. 마지막으로, Linux 운영체제 환경에 구현된 시뮬레이터와 실제 플래시 메모리를 장착한 테스트 보드에서 응용 프로그램의 성능 측정 결과를 비교함으로써 본 시뮬레이터가 실제 플래시 메모리 장치 대용으로 사용할 수 있음을 보였다.
This paper introduces the design and implementation of a flash memory simulator to emulate a real flash memory. Since this simulator provides exact execution time information and parameter testing functions as well as the type, total capacity, block size, and page size of flash memory, it can be use...
This paper introduces the design and implementation of a flash memory simulator to emulate a real flash memory. Since this simulator provides exact execution time information and parameter testing functions as well as the type, total capacity, block size, and page size of flash memory, it can be used as a real flash memory as viewed by the operating system. Furthermore, the simulator provides time logging functions of the internal routines of the flash memory management software allowing the monitoring of bottlenecks within the software. Finally, we show the performance measurements of applications under the Linux operating systems on both the simulator and a test board verifying the simulator's use as a replacement for real flash memory.
This paper introduces the design and implementation of a flash memory simulator to emulate a real flash memory. Since this simulator provides exact execution time information and parameter testing functions as well as the type, total capacity, block size, and page size of flash memory, it can be used as a real flash memory as viewed by the operating system. Furthermore, the simulator provides time logging functions of the internal routines of the flash memory management software allowing the monitoring of bottlenecks within the software. Finally, we show the performance measurements of applications under the Linux operating systems on both the simulator and a test board verifying the simulator's use as a replacement for real flash memory.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 인구에서 FM3IM를 설계할 网 다읍의 사항읖 목표로 하였다.
제안 방법
FMSIMe 그림 1과 같이 물리 메모리를 이용하여 플래시 메모리 연산을 시뮬레이션하기 때문에, 시뮬레이션 중에 물組 메모리에 대한 페이지 오류(page fault)가 발생하면 정확한 수햄 시간을 보장하는 것이 불가농하다' 이뻐한 문제점을 해결하기 위해서 다음과 같운 과정을 통해 FM&IM이 사용하는 물리 메모리에 대해 페이지 오류가 발생하지 않도록 하였다.
FMSIMe 플래시 메모리의 톡성(생산 방식, 전체 용량, 블록 크기, 페이지 m기, 면산의 수행 시간)을 임의 로 변화시키면서 실험한 수 있는 환경올 제공한다- 里한 정확한 연산의 수행 시간珥 인자 검증 기능을 제공함오로써, 실제 응용 프룩그램을 수행하며 간편하고 실제적인 성능 평가 組과를 얻을 수 있도록 하였다. 로깅 기능 올 제곰함으旦써 FMSIM 내부외 수행 시간과 호출 빈도 등외 통계 자료를 얻을 수 있도룩 하였다.
FMSIM의 각 면산의 수행 시간을 교정하기 위해서 시스템 버스 지연 시간(system bus delay)을 고려하였다. 시스템 버스의 전송률은 5.
FMSIM의 내부 함수 및 플래시 메모野 장치 드라이버의 수행 시간을 기록하기 위해서 로깅 버퍼를 그렴 1에서 설명한 바와 깉■이 물리 메모리외 일정 영역을 할담하여 사용하였다. 로깅 버퍼는 환영 버퍼 (circular buffer) 구조로 구성하뗬으며, 기혹하는 내용은 함수 id, 일련 번호(sequen院 number), 함수 인지-, time stamp 이다.
든째, FMSIM이 실제 플해시 페모리와 동일한 수 행 시간에 동작할 수 있도록 교정calibration)하기 위해서 EMSIM외 각 연산의 수행 시간을 플래시 메모리 테스트 보드에서의 수행 시간과 측정 및 비교하였다. 셋째, 여러가지 응용 프로^!■램을 FMSIM과 플래시 메모리 테스트 보드에서 실행하여 수행 시간을 흑정 및 비교하였다.
첫째, 인터페이스 모듈은 플래시 메모리 장치 드라이버와 같온 상위 계층과의 인터페이스를 제공한다, 둘째, 연산 져합성 검사 모듈은 Nop, 마모呈 둥 요청된 연산이 플래시 메모리의 제약올 위반하는지를 검사한다' 셋째, 연산 수행 모듈은 각 플래시 메모리 연산을 실체로 수행 한다. 넷째, 수행 시간 검사 모듈은 정확한 연산 수행 시간을 준수하기 위해 각 모듈의 수행 시간을 모니터링 한다, 다섯째, 로깅 모듈은 FMSIM 및 플래시 메모리 창치 도라이버의 성농 측정한다. 그림 1은 FMSIM외 구조를 도식화한 것이다.
첫째, 플래시 메모리의 각 연산이 정확한 시간에 수행될 수 있는지를 검층하기 위해서 각 연산의 수행 시간의 평균 및 분산을 측정하였다. 든째, FMSIM이 실제 플해시 페모리와 동일한 수 행 시간에 동작할 수 있도록 교정calibration)하기 위해서 EMSIM외 각 연산의 수행 시간을 플래시 메모리 테스트 보드에서의 수행 시간과 측정 및 비교하였다. 셋째, 여러가지 응용 프로^!■램을 FMSIM과 플래시 메모리 테스트 보드에서 실행하여 수행 시간을 흑정 및 비교하였다.
그 이유는 단일 처리기 시스템 또는 다중 처리기 시스템에서 전용처리기틀 두지 않고 FMSIM을 실행하도록 하였을 경우, 플래시 떼모리 연산을 시뮬레이션하는 중에 연산을 수행하는 중에 스케줄링미나 인터뻡트에 의해 수행이 중단되어 정확한 수행 시칸욜 얻을 수 없刃 때문이다. 따라서, 1개의 처미기가 FMSIM 수행올 전담하며, 스케줄링이나 인터럽트 처리에는 전혀 참여하치 않도록 구현하였디..
FMSIMe 운영체제 또는 응용 프로그램외 입장에서 실제 플래시 메모리와 동일한 인터페이스를 제공하기 때문에 플래시 메모비를 사욤하는 응용 프로그램외 개발, 플래시 메모리의 장치 드라이버의 개발에 사욤묄 수 있다. 또한, 각 연산의 수행 시간메 대한 로깅 기능올 제곰 하기 때문에 기존 응욥 프로그램 또는 장치 드라이버의 성능 개선 작업에 사용뇔 수 있디、실제로 본 연구진온 FMSIM을 사용하며 Linux 시스템의 플래시 메모리 장치 드라이버에 대한 새로몬 알고리즘을 개발하였다[7].
본 논문메서는 이러한 문제점올 해결하기 위해 정확한 플래시 메모리의 득성을 반영하는 직접 실행 기법의 플래시 메모리 시뮬레이터(FMSIM)률 설계 및 구현하였 4- FMSIM흔 Linux 시스템에 디바이스 드라이버 수준에서 기존 Linux 인터페이스를 n대로 이융할 수 있도록 고현되었다, FMSIM외 상점을 정리하면 다움과 같다.
표 1은 NAND 방식 플래시 메모리에 대화여 긱- 연산외 수행 시간 및 분삭을 구한 결과이며, 표 2는 NOR 방식 플래시 메모티에 대한 결과이다. 수행 시간은 로깅 기능올 이용하여 측정하였으며, 각 연산을 10, 000번 실행하여 평균 및 분산을 구하였다.
둘째, 단지 플래시 메모리에 대한 연산 기능을 제공할 뿐만 아니라 연산의 정확한 수划 시간 검중 기능을 제공한다. 이를 위해 본 연구에서는 다중 처리기를 이욤홰 시뮬레이터 수행 중에 인터럽트 같은 다른 소호트웨어 모듈외 간섭올 배제하였다. 따바서 플래시 메모리에 접근할 때 읽기/쓰기 시간 등을 측정할 수 있오며, 운영체제 또는 장치 드라이버 입장에서는 싶제 플래시 메모리 장치를 사용하는 효파를 얻을 수 있다.
FMSIM의 타당성 검종 및 성농 분석을 위하여 다음과 같은 절차에 의해 실험을 수행하였다. 첫째, 플래시 메모리의 각 연산이 정확한 시간에 수행될 수 있는지를 검층하기 위해서 각 연산의 수행 시간의 평균 및 분산을 측정하였다. 든째, FMSIM이 실제 플해시 페모리와 동일한 수 행 시간에 동작할 수 있도록 교정calibration)하기 위해서 EMSIM외 각 연산의 수행 시간을 플래시 메모리 테스트 보드에서의 수행 시간과 측정 및 비교하였다.
O 마모도 검, 사: 각 블록에 대하여 삭제 연산이 가눙 한 횟수가 제한되어 있다. 플래시 메모리의 모든 블록에 대해서 마모도를 기록하고, 이 값이 제한값을 초과하는 지 검사한다.
대상 데이터
그림 11은 본 논문에서 사용한 ISA 버스 방식 플래시 메모리 테스트 보드의 사진이다. 테스트 보드에 사용된 플래시 메모김는 NAND 방식의 삼성 K9F6408U0A이다. 성능 측정 환경.
데이터처리
33 Mbps이다[17]. 수행 시간은 각 연산을 10, 0("번 실행하여 평균 및 분산을 구하였다.
성능/효과
3.2절에서 설명하였듯이 연산 적합성 검사는 인자 적합 성 검시-, Nop 검사, 마모도 검시-, 0->1 쓰기 검사로 나뉜다 이를 구현하기 위해서 플래시 메모리외 구성 테이블 tconfiguration table)과 각 블록에 대한 상태를 刃록하는 상태표(飢atistics table)를 유지 관리한다. 플래시 메모리 외 구성 테이블과 상태표는 각각 그림 6, 그림 7과 같다.
FM&IMe 정확한 연산 수행 시간을 제공하기 위춤日서 다중 처리기 시스템용 Linux 시스템올 기반으루 구현되 었으며, 성능 분석 결과 FMS1M이 실제 플래시 메모리를 올바르게 시뮬레이션 함을 보었다.
FMSIMe MTD framework에서 하나외 장치 파일로 구현되었으며, 그 결과 기존 MTD 사용자나 응용 프로그램은 끼존 인터페이스의 변경 없이 FMSIM을 사용할 수 있다.
둘째, 단지 플래시 메모리에 대한 연산 기능을 제공할 뿐만 아니라 연산의 정확한 수划 시간 검중 기능을 제공한다. 이를 위해 본 연구에서는 다중 처리기를 이욤홰 시뮬레이터 수행 중에 인터럽트 같은 다른 소호트웨어 모듈외 간섭올 배제하였다.
넷쩨 FMSIMe Linux 시스템외 기존 디바이스 巨라 이버 인터페이스를 그대로 사용할 수 있도록 ■孑현되었다. 따라서 FMSIM올 위한 장치 파일을 만들어 주어 format, mkfs 같은 기존의 Linux 웅용들을 그대로 사용할 수 있으며, 플래시 메모리의 유형과 종류메 관계없이 단일한 인터페이소로 접근할 수 있다.
그러나, FMSIMe 소프트웨어 시뮬레이션 방식의 제약으로 인헤 부텅 기능을 제공하지 못하며, Linux외 커널 모듈 로 ■구현되었기 때문에 실행 기능을 제강하는데 많은 문 체점이 밌다. 마지막으로, CompactFlash, Multimedia card, Memory Stick과 같은 플래시 메모리와 제어기 (amtmller)가 결합된 형태의 모넬은 시뮬레이션 할 수 없다. 미를 정확히 시뮬레이션하기 위해서는 제어기, 제어 소프트웨어, 버스, 플래시 메모리 등을 함께 시뮬레이션할 수 있어야 한다.
MPG123는 음악 파일의 한 종류인 MP3 파일을 재생하는 표로그램이다. 본 실험에는 실세로 음악 파일을 재생하지 않고, MP3 파일올 decoding하는 작업만올 100회 반복하도록 해였다. CSCOPE는 프로그램 소스 분석기이다[19]- CSCOFE는 교차 참조(crossr成erenw) 파일을 생성한 후 사용자가 소스를 편리하게 분석할 -r 있도록 여러가지 기능을 제공한디.
셋째, 실제 플래시 떼모리 상에서는 결함을 생성하고, 결함이 있을 경우 이를 발견하고 해결하는 기능을 검증하는 것이 어렵다, 하지만 FMSIMe 인자 검증 기능과 연산 적함성 검사 기능을 제공하며, 따라서 플래시 페모 리메 접근할 때 발생할 수 있는 관리 소프트웨어외 결 함을 발견할 수 있다. 또한 FMSIMe 걸함을 동적으로 삽입하고 이 결함을 플래시 메모리 관리 소프트웨어까 세대룪 처리하는지 실험할 수 있다-
이상의 성능 측정 걸과로 FMSIM이 실제 플래시 메모비를 올바르게 시뮬레이션하고, 실체 플래시 메모리외 대용 장치로 사용할 수 있음을 보였다.
후속연구
구체적으로 생산 방식, 전체 용량, 믈록 크기, 페이지 크기, 연산외 수행 시긴. 등올 제어 변수로 조절할 수 있으며, 따라서 다양한 유형과 종류의 플래시 메모리를 모의실험 (simulation) 할 수 있匸k 또한 아직 제품으로 룰시되어 있지 않은 1 GB 이상 대용량 플래시 메모리나 새로운 제어 모듈을 갖는 풀래시 떼모리에 대한 실험과 성능 측정을 수행할 수 있으며, 이 ■결과는 새로운 플래시 메모리의 설게 방향 제시 등의 기초 차료로 이욤될 수 있다.
첫째, FM&IM믄 플래시 미모리의 특성을 임의로 변화 시키면서 실험할 수 있는 환경을 제곰한다. 구체적으로 생산 방식, 전체 용량, 믈록 크기, 페이지 크기, 연산외 수행 시긴.
Samsung Semiconductor, 'Flash Memory Data Sheets,' http://www.intl.samsungsemi.com/Memory/Flash/datasheets.html
M. Wu and W. Zwaenepoel, 'eNVy: A Non-Volatile, Main Memory Storage System,' Proceedings of the 6th Symposium on Architectural Support for Programming Languages and Operating Systems, pp. 86-97, October 1994
F. Douglis, F. Kaashoek, R. Marsh, R. Caceres, K. Li, and J. Tauber, 'Storage Alternatives for Mobile Computers,' Proceedings of the 1st Symposium on Operating Systems Design and Implementation, pp, 25-37, January 1994
M. L. Chiang and R.-C. Chang, 'Cleaning policies in mobile computers using flash memory,' Journal of Systems and Software, vol. 48, no. 3, pp. 213-231, 1999
A. Kawaguchi, S. Nishioka, and H. Motoda, 'A flash-memory based file system,' Proceedings of the USENIX 1995 Winter Conference, pp. 155-164, 1995
H.-J. Kim and S.-G. Lee, 'A new flash memory management for flash storage system,' Proceedings of the 23rd International Computer Software and Application Conference, pp. 294-295, 1999
A. Ban, 'Flash file system,' United States Patent, no. 5,404,485, April 1995
M. Assar, M. Hill, S. Nemazie, and P. Estakhri, 'Flash memory mass storage architecture,' United States Patent, no. 5,388,083, February 1995
S. S. Mukherjee, S. K. Reinhardt, B. Falsafi, M. Litzkow, S. Huss-Lederman, M. D. Hill, J. R. Larus, and D. A. Wood, 'Wisconsin Wind Tunnel II: A Fast and Portable Parallel Architecture Simulator,' Workshop on Performance Analysis find Its Impact on Design (PAID), June 1, 1997
E. A. Brewer, C. N. Dellarocas, A. Colbrook, and W. E. Weihl, 'PROTEUS: A High-Performance Parallel-Architecture Simulator,' Technical Report MIT/LCS/TR-516, 1991
G. R. Ganger, B. L.Worthington, and Y. N. Part, 'The DiskSm Simulation Environment Version 1.0 Reference Manual,' Technical Report CSE-TR-358-98, 1998
Intel Corporation, 'MultiProcessor Specification Version 1.4,' http://www.intel.com
MTD, 'Memory Technology Device (MTD) Subsystem for Linux,' http://www.linux-mtd.infradead.org
J. Kim, J. M. Kim, J. Choi, J. Y. Jeong, S. H. Noh, S. L. Min, and Y. Cho, 'Design and Implementation of a Flash Memory Based Storage System for Moblie Devices,' http://headongdb.snu.ac.kr/technical/snu-ce-tr-2001-1.doc
※ AI-Helper는 부적절한 답변을 할 수 있습니다.