낸드 플래시 기대 수명을 고려한 쓰기 조절 기법271 낸드 플래시 기대 수명을 고려한 쓰기 조절 기법 (Write Throttling for Expected NAND Flash Memory Lifetime) 김 민 지 신 동 군 (Min Ji Kim) (Dongkun Shin) 요 약 본 논문에서는 낸드 플래시 메모리의 제한적인 수명을 고려하여 스마트 디바이스에서의 메모리 회수 시 과도하게 발생하는 저장 장치에 대한 쓰기를 감소시키는 방법을 제안한다. 기존 운영체제에서의 메모리 회수 정책은 쓰기를 유발하는 더티 페이지 쓰기와 스왑, 쓰기를 유발하 지 않는 클린 페이지 회수와 프로세스 종료가 있다. 이 때, 더티 페이지 쓰기와 스왑으로 인해 저장장치에 과도한 쓰 기 요청이 발생할 경우 수명이 단축되는 문제가 발생할 수 있다. 따라서 메모리 회수 과정에서 발생하는 쓰기에 대한 조절이 필요하다. 제안하는 기법은 모바일 저장장치로 사용 되는 emmc에 대한 쓰기 양을 모니터링 하여 그에 따라 쓰기 조절 상황을 판단하고 메모리 회수 시의 스왑과 더티 페이지 쓰기, 프로세스 종료를 유발하는 조건에 대한 임계 값을 조정하여 낸드 플래시로 유발되는 쓰기 양을 감소시 킨다. 이 결과 같은 워크로드에 대해 전체 쓰기 양이 기존 에 비해 43% 감소하였다. 키워드: 스왑, 낸드 플래시, 더티 페이지 쓰기, 쓰기감소 Abstract In this paper, we propose a NAND flash write throttling technique in memory reclamation. This technique controls the write traffic on NAND flash memory considering the expected NAND flash memory 본 연구는 지식경제부 및 한국산업기술평가관리원의 산업융합원천기술개 발사업(정보통신)의 일환으로 수행하였음. [KI0018-10041244, 스마트 TV 2.0 소프트웨어 플랫폼] 이 논문은 제40회 추계학술발표회에서 낸드 플래시 기대 수명 보장을 위한 스왑 조절 기법 의 제목으로 발표된 논문을 확장한 것임 학생회원 : 성균관대학교 IT융합학과 kimmj0857@skku.edu 종신회원 : 성균관대학교 컴퓨터공학과 교수 dongkun@skku.edu (Corresponding author임) 논문접수 : 2014년 1월 3일 심사완료 : 2014년 3월 6일 CopyrightC2014 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작 물의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처 를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지: 컴퓨팅의 실제 및 레터 제20권 제5호(2014.5) lifetime. During the memory reclamation in operating systems, many write requests to the storage are generated - dirty page writeback and swap out. Our technique monitors the write traffic and controls the threshold values for dirty page writeback, swap or process kill. Experiments show that the proposed algorithm reduces the write traffic by 43% without increasing the read traffic significantly. Keywords: swap, writeback, NAND flash memory, write throttling 1. 서 론 최근 스마트 디바이스의 활용도가 높아짐에 따라 다 양한 애플리케이션이 많이 출시되고 있다. 그에 따라 여 러 가지 기능을 실행하기 위한 메모리 요구량이 크게 증가하고 있다. 구글 레퍼런스 폰의 사양을 참고하면, 2008년에 출시된 HTC Dream의 경우 메모리의 크기가 192MB 였으나, 2013년 출시된 넥서스5의 경우 메모리 가 2GB로 그 크기가 약 10배 증가한 것을 알 수 있다. 하지만, 하드웨어적 사양을 높이는 것은 구조적, 비용적 한계가 있기 때문에 모바일 환경의 효율적인 메모리 관 리 기법이 필요하다. 기존의 메모리 회수 정책은 크게 네 가지로 설명할 수 있다. 자주 접근되지 않는 페이지를 별도의 스왑 공 간으로 옮기는 스왑, 더티 페이지 쓰기, 클린 페이지 회 수 그리고 프로세스를 종료하여 여유 메모리를 확보하 는 Out of memory killer(oomk)가 있다. OOMK는 메모리를 가장 많이 할당 받은 프로세스를 종료시키므 로 사용자의 반응성이 중요한 모바일 환경에 적합하지 않다. 따라서 OOMK정책을 모바일 환경에 맞게 수정하 여 안드로이드 플랫폼에 적용된 것이 Low memory killer (LMK)이다. 이 기법의 경우 최근에 실행되지 않 은 백 그라운드 프로세스 중 가장 많은 메모리를 할당 받은 프로세스를 선택해 종료하여 메모리를 회수한다. 스왑과 더티 페이지 쓰기의 경우 저장장치에 대한 쓰기 를 유발하지만 클린 페이지 회수 및 OOMK, LMK의 경우 부가적인 쓰기가 발생하지 않는다. 스마트 디바이스에서 저장장치로 사용되는 낸드 플래 시 기반의 저장장치인 emmc는 빠른 접근 속도를 보장 하기 때문에 최근 스왑이 적용된 스마트 폰이 출시되기 도 하였다. 그러나 스왑을 적용할 경우 스왑 공간으로 사용되는 emmc에 대한 입출력이 과도하게 발생하여 저장장치의 수명을 단축시키는 문제점이 발생할 수 있 다. 또한 메모리가 부족할 때 여유 메모리 공간을 확보 하기 위하여 더티 페이지 쓰기가 자주 발생하는데 이 또한 낸드 플래시의 쓰기를 유발하여 저장장치의 수명을 단축시킬 수 있다. 그림 1은 1200초 동안 넥서스 10 상
272 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제 20 권 제 5 호(2014.5) 그림 1 스왑 적용 여부에 따른 데이터 쓰기 양 비교 Fig. 1 Write Increase by Swap 에서 blktrace를 이용하여 데이터 파티션 영역의 쓰기 데이터 양을 비교한 그래프이다. 쓰기의 속성으로 더티 페이지 쓰기(Writeback)와 스왑 아웃으로 인한 쓰기 (Swap), 파일에 대한 명시적 동기화 쓰기(Sync), EXT4 파일시스템의 저널링으로 발생하는 쓰기(Journal Write), 실험 오버헤드로 인한 부가적 쓰기(Others)와 같이 구분하였다. 스왑을 적용하지 않은 경우와 적용한 경우를 비교할 때 스왑에 의한 쓰기로 인하여 전체 데 이터 쓰기 양이 69MB 증가한 것을 알 수 있다. 또한 스왑과 더티 페이지 쓰기의 비중이 전체 쓰기 중 약 82%로 매우 큰 비중을 차지하는 것을 알 수 있다. 따라 서 플래시 메모리의 제한된 기대 수명을 고려하여 메모 리 회수 시 발생하는 쓰기 양을 조절할 필요성이 있음 을 알 수 있다. 본 논문에서는 낸드 플래시의 기대 수명을 고려하여 메 모리 회수 시 발생하는 저장장치에 대한 쓰기를 감소시키는 기법을 제시한다. emmc 디바이스 드라이버에서 emmc 에 요청되는 전체 쓰기 양을 모니터링하고 그에 따라 메모 리 회수 시 유발되는 쓰기 - 스왑, 더티 페이지 쓰기 - 를 감소시켜 메모리 회수 시 저장장치에 발생하는 쓰기 양을 감소시킨다. 동시에 저장장치에 쓰기를 유발하지 않는 메 모리 회수 방법 - 클린 페이지 회수, LMK - 을 이용하여 메모리 회수 효율에 영향을 미치지 않도록 하였다. 본 논문은 총 6절로 구성되어 있다. 2절에서는 국내외 플래시 기반의 저장장치의 쓰기 감소 기법을 소개하고 3절에서는 낸드 플래시의 특성에 대해 소개한다. 4절에 서 제안하는 메모리 회수에서의 낸드 플래시 쓰기 감소 기법을 소개하고 5절에서는 제안한 기법에 대한 실험 결과를 기술 및 분석하며 6절에서는 결론 및 향후 연구 에 대해 서술한다. 2. 관련 연구 [1]은 최근 반도체 공정의 변화로 인하여 낸드 플래시 메모리의 수명이 감소함에 따라 낸드 플래시 기반의 저 장장치에 대한 수명이 감소하고 있는 문제를 지적하며, 이를 해결하기 위한 방법을 제시하고 있다. 이 기법은 SSD내부의 펌웨어 상에 적용된 것으로 과거의 데이터 쓰기 요구량을 모니터링하여 미래에 요청될 데이터 쓰 기 양을 예측한다. 그 후 예측된 데이터 쓰기 양과 현재 남아 있는 SSD의 수명을 고려하여 쓰기 조절 상황을 판단한 뒤 시간 당 정해진 쓰기 양 이상을 처리하지 못 하도록 강제하여 SSD의 수명을 보장한다. 그러나 쓰기 조절 상황에서 강제로 저장장치의 성능을 떨어뜨려 빠 른 SSD의 성능을 충분히 활용할 수 없는 단점이 있다. 이 밖에도 낸드 플래시 메모리의 특성으로 인하여 발생 하는 가비지 콜렉션(Garbage Collection)과 마모도 평 준화(Wear-leveling)을 최적화[2]하거나 데이터 압축[3] 및 중복 데이터 제거[4]를 통해 SSD의 수명을 개선하 는 연구들이 있다. 위의 기법들은 낸드 플래시 기반의 저장장치에 대한 쓰기 양을 감소시키는데 효과적이나 SSD 내부의 펌웨 어에서의 쓰기 양 조절 기법인 것에 반해, 제안하는 기 법의 경우 운영체제 수준에서의 구현으로 쓰기 종류에 따라 쓰기 조절을 하여 수명 감소를 늦출 수 있고 emmc 또는 SSD의 빠른 성능을 충분히 활용할 수 있 다는 점에서 기존 연구들과 확연한 차이가 있다. 3. 낸드 플래시 메모리의 특성 낸드 플래시 메모리의 특성을 크게 세 가지로 나누어 설명하면 첫 번째로 낸드 플래시 메모리는 비 휘발성 저장장치이며 하드디스크에 비해 임의 접근 속도가 빠 른 장점이 있다. 두 번째 특성으로 페이지 단위(4KB, 8KB)의 읽기 및 쓰기가 가능하나 덮어쓰기가 불가능하 고 지우기의 단위가 페이지보다 큰 블록 단위이므로 FTL(Flash Translation Layer)에서 페이지와 블록에 대한 매핑 정보를 관리한다. 세 번째로 블록 당 지우기 횟수가 한정되어 있으므로 제한된 수명을 가진다는 점 이다. 낸드 플래시의 수명은 메모리 셀 당 Program/Erase(P/E) cycle로 결정되며 P/E cycle이 증 가할수록 플래시 메모리는 점차 손상되어 데이터에 대 한 신뢰도가 감소한다. 최근 반도체 공정이 Single-Level Cell(SLC) 기법에서 Multi- Level Cell(MLC)로 변함에 따라 저장 용량은 증가하였지만, 기존 SLC에서의 최대 허용 가능한 P/E cycle이 약 100K회였으나 3-bit MLC의 경우 약 100회의 P/E cycle로 감소하였다. 또한 사용자의 워크로드가 다양하 고 쓰기 양이 수시로 변화하기 때문에 실제 낸드 플래 시의 수명을 예측하기 어렵다. 따라서 낸드 플래시 기반 의 저장장치의 수명을 고려하여 저장장치로 요청되는 쓰기의 양을 감소시키는 효과적인 방법이 필요하다.
낸드 플래시 기대 수명을 고려한 쓰기 조절 기법273 4. 메모리 회수 시 유발되는 쓰기 조절 4.1 주기적인 메모리 해제 과정 본 논문에서 제안하는 기법은 리눅스 커널을 토대로 구현되었으므로 리눅스의 주기적인 메모리 해제 과정에 대해 간략하게 소개한다. 리눅스 커널 내의 kswapd 쓰 레드는 메모리 구역 별 워터마크(LOW_WATERMARK) 와 여유 메모리 공간을 비교하여 여유 메모리 공간이 워터마크보다 적은 메모리 구역부터 메모리 회수가 발 생한다. 이 때 메모리 회수 대상으로 선정된 메모리 구 역 내의 페이지를 관리하는 LRU(Least Recently Used) 리스트를 부분적으로 스캐닝하여 희생 페이지를 선정한 뒤 회수한다. 위의 회수 과정의 경우 메모리 구역 내의 여유 메모리 공간이 HIGH_WATERMARK이상 확보될 때까지 반복하며 최대 12번 반복된다. 4.2 제안하는 기법 알고리즘 1은 제안하는 기법을 요약한 것으로 주기적 인 메모리 해제 과정 시 적용한 것이다. 낸드 플래시 기 반 저장장치의 전체 가능 쓰기 양(W total)은 다음과 같이 구할 수 있다. W total = C N (C: SSD capacity, N: Max P/E cycles) 이 값은 디바이스를 사용하는 기간 중 저장 장치에 최대 로 쓸 수 있는 쓰기 양을 의미하는 것으로 저장 장치의 성능 보장 기간을 T라고 할 때 단위 시간 당 저장 장치 의 쓰기 가능 양(W unit)은 다음과 같이 구할 수 있다. W unit = W total / T 본 논문에서 제시하는 기법에서는 이 단위 시간을 분 단위 로 계산하여 사용하였다(MMC_WRITE_PER_MINUTE). 위 값을 이용하여 디바이스의 사용 기간(t)에 대한 저장 장치 가능 쓰기 양을 얻을 수 있다. W target(t) = W unit t W target(t)과 emmc 디바이스 드라이버에서 모니터링 한 현재까지의 저장 장치 쓰기 요청 양(W real(t))을 비교 하여 쓰기 조절 상황임을 판단하게 된다. 쓰기 조절 상황 인 경우 스왑, 더티 페이지 쓰기와 LMK의 우선순위를 결 정할 때 사용되는 throttle_loop 값을 0으로 초기화 하고 메모리 회수가 반복될 때마다 1씩 증가한다(4~14줄). 그 리고 소극적 스왑의 적용을 위해 LRU 리스트에서 스왑 아웃의 희생 페이지 결정 시 리스트의 탐색 범위를 결정 하는 값인 scanning_ratio를 조절하여 스왑 아웃의 대상 이 되는 익명 페이지의 비율을 감소시킨다(15~17줄). 다음은 주기적인 메모리 회수 과정에서 쓰기 조절을 적용한 부분으로 쓰기 조절 기법에서 고려한 메모리 회 수 기법은 더티 페이지 쓰기, 스왑, LMK이다. 이 세 가 지 기법 중 쓰기를 유발하지 않는 LMK에 가장 높은 우선순위를 부여하였고, 가장 많은 쓰기를 유발하는 더 티 페이지 쓰기의 경우 우선 순위를 가장 낮게 적용하 여 최대한 메모리에 더티 페이지를 유지하도록 하였다. 더티 페이지 쓰기는 반드시 필요한 작업이지만, 메모리 에 더티 페이지가 유지될 경우 메모리 적중 효과를 볼 수 있는 장점이 있다. 모든 메모리 회수 반복 시 클린 페이지 회수는 발생하나 LMK, 스왑, 더티 페이지 쓰기 의 경우 throttle_loop값과 각 기법들의 임계 값인, 과의 비교를 통해 메모리 회수를 수행한다. 알고리즘 1을 참고하면, 메모리 회수 과정이 반복되면 서 throttle_loop의 값이 증가하여 이상이 되는 경우 메모리 회수 기법 중 쓰기를 유발하지 않는 LMK를 우 선적으로 적용하여 메모리 회수를 수행한다(25~27줄). 회수하고자 하는 메모리의 양을 충분히 회수하지 못할 경우 메모리 회수 동작이 반복되면서 threshold_loop값 이 증가하는데 이 때 이상 반복되는 경우 메모리 회 수가 클린 페이지 회수와 LMK만으로 충분하지 않다고 판단하여 스왑을 추가적으로 수행하는 것으로 메모리 회수의 효율을 높이게 된다(18~24줄). 더티 페이지 쓰기 의 경우에도 클린 페이지 회수, LMK, 스왑을 통한 메 모리 회수의 효율이 낮아서 메모리 회수 동작이 반복되 었기 때문에 threshold_ loop의 값이 이상이 될 때 더티 페이지 쓰기를 가능하게 하여 클린 페이지를 확보
274 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제 20 권 제 5 호(2014.5) 그림 2 제안하는 알고리즘의 동작 Fig. 2 Write Throttling with Three threshold values 하여 메모리 회수의 효율을 높인다(28~32줄). 이는 더 티 페이지 쓰기를 담당하는 flusher 쓰레드의 동작을 제 어하는 파라미터들과는 별개로 주기적인 메모리 회수 단계에서 유발되는 더티 페이지 쓰기를 차단하여 쓰기 를 조절하는 동작이다. 그림 2는 위에서 설명한 알고리 즘의 동작을 도식화 하여 표현한 것이다. 5. 실험 및 평가 5.1 실험 환경 본 실험에서는 넥서스 10의 커널 3.4.5 버전에서 구현 되었으며 안드로이드 4.2.2 버전에서 실험하였다. 스왑을 적용하지 않은 경우, 일반 스왑을 적용한 경우, 쓰기 조 절 기법이 적용된 경우에 대해 구글 플레이의 인기 애 플리케이션 16개를 무작위로 3번 반복 실행하였다. blktrace를 이용하여 쓰기의 속성에 따라 결과를 비교, 분석하였다. 쓰기 조절 기법의 경우 항상 쓰기 조절 상 황이라는 것으로 가정하여 쓰기 조절 기법을 통해 최대 로 얻을 수 있는 쓰기 감소 양을 관찰하고자 하였다. 실 험에서 가정한 P/E cycle의 수는 1000번이다. 실험에 사용한 값은 각각 9, 6, 2로 더티 페이지 쓰 기의 경우 메모리 회수 과정이 전체 반복 횟수의 3/4 이상 반복될 경우, 스왑의 경우 1/2, LMK의 경우 1/6 이상 반복될 경우 실행되도록 적용하여 실험 하였다. 넥서스 10의 메인 메모리의 크기는 2GB이며 디바이 스 부팅 후 가용 메모리는 약 700MB이다. 스왑 공간으 로 사용된 넥서스 10의 총 emmc 용량은 16GB이며 저장장치의 보장 수명을 2년으로 가정하고 emmc의 최 대 쓰기 용량을 계산하여 실험하였다. 스왑 공간은 데이 터 파티션 내의 256MB 크기의 스왑 파일을 만들어 실 험 하였다. 5.2 emmc에 대한 쓰기, 읽기 요청 비교 그림 3은 제안하는 기법을 적용하였을 때 실제로 emmc에 대한 데이터 쓰기 양이 감소하는 지를 알아보 기 위하여 스왑 미 적용, 일반 스왑 적용, 쓰기 조절 기 법이 적용된 경우에 대하여 데이터 쓰기 양을 비교한 것이다. 또한 제안하는 기법에 의한 성능적 영향을 관찰 하기 위하여 데이터 읽기 양도 함께 비교하였다. 목표 쓰기 양에 대한 실제 쓰기 양을 비교하기 위해 실험 시간 동안의 목표 쓰기 양을 계산하면 동일한 워 크로드를 실행하는데 걸린 시간(약 1500초) 동안 목표 쓰기 양은 약 600MB이며 그림 3의 그래프 상의 점선 이 계산된 목표 쓰기 양을 나타낸다. 스왑을 적용하지 않은 경우에 비해 스왑을 적용할 때 emmc에 요청된 총 데이터 쓰기 양이 약 5배 증가하였는데 이는 주로 여유 메모리 확보를 위해 접근되지 않는 페이지를 emmc 내의 스왑 공간으로 내 쫓아 발생하였다. 그에 비해 쓰기 조절 기법이 적용된 경우 스왑을 적용한 경 우에 비해 총 데이터 쓰기 양이 약 43% 감소하였는데 이는 전체 데이터 쓰기 양에서 큰 비중을 차지하고 있 던 스왑으로 인한 쓰기가 크게 감소했기 때문이다. 또한 스왑 아웃 양과 더티 페이지 쓰기 양을 비교할 경우 일 반 스왑을 사용하였을 때와 비교하여 더티 페이지 쓰기 의 경우 이전에 비해 27% 감소하였고 스왑 아웃 양의 경우 약 49% 감소하여 더티 페이지 쓰기와 스왑에 의 한 쓰기 감소 모두 효과를 보였다. 목표 쓰기 양과 비교 하면 쓰기 조절 기법을 적용한 경우에 약 14MB의 쓰기 양이 초과된 것을 알 수 있다. 이는 4.2절에서 언급했듯 이 현재 구현된 알고리즘이 간접적인 쓰기 조절이고 메 모리 회수 기법 별 임계 값이 사용자 워크로드와 무관 하게 고정되어 있으므로 실제 쓰기 양이 항상 목표 쓰 기 양에 만족하는 것은 어렵다. 따라서 워크로드 상황에 따라 동적으로 값을 조정하여 목표 쓰기 양 을 충분히 활용하면서 쓰기 조절의 목표를 달성할 수 있는 알고리즘의 구현이 필요하다. 데이터 읽기 양을 분 석하면 스왑을 사용하지 않을 때에 비하여 스왑을 사용 할 때 약 8% 증가하는 것을 볼 수 있다. 그러나 스왑을 적용한 경우와 쓰기 조절 기법을 적용한 경우를 비교할 때 후자의 경우 읽기 양이 줄어드는 것을 볼 수 있는데 이는 스왑 영역에 대한 읽기가 감소하여 생긴 결과로 제안하는 기법에서 스왑으로 인한 쓰기 양이 줄어들었 기 때문에 그로인해 읽기 양 또한 줄어든 것을 알 수 그림 3 제안한 기법의 읽기, 쓰기 양 비교 Fig. 3 Comparison on Read/Write Amount
낸드 플래시 기대 수명을 고려한 쓰기 조절 기법275 표 1 제안한 기법의 메모리 회수 비교 Table 1 Comparison on Amount of Memory Reclamation (MB) No Swap Swap Throttling Clean Eviction 195.68 146.28 168.02 Low Memory Killer 880.73 344.93 568.78 있다. 또한 스왑을 적용하지 않은 경우에 비해 읽기 양이 감소한 것을 알 수 있는데 이는 표 1의 내용을 통해 설 명 가능하다. 표 1은 클린 페이지 회수(Clean Eviction) 와 LMK를 이용한 메모리 회수 양을 나타낸 표이다. 스 왑을 적용하지 않았을 때 클린 페이지 회수 및 LMK를 이용한 메모리 회수가 다른 경우에 비해 매우 많기 때 문에 그로 인한 emmc 읽기가 많이 발생하여 제안하는 기법에서는 읽기 양이 기존에 비해 감소한 것을 알 수 있다. 5.3 애플리케이션 동작 비교 제안한 쓰기 조절 기법에서 LMK를 우선적으로 적용 하여 메모리를 회수하기 때문에 LMK에 의해 종료된 애플리케이션을 다시 실행하는 경우 오버헤드가 발생할 수 있으므로 이에 대한 관찰이 필요하다. 그림 4는 안드로이드 플랫폼에서 제공하는 Logcat 메 시지를 이용하여 그림 3의 실험과 동일한 시나리오 상 에서 애플리케이션의 동작을 관찰한 것이다. 애플리케이 션의 동작은 최초 시작 애플리케이션 수(Cold Start), 메 모리에 로드되어 있는 애플리케이션을 실행한 수(Warm Start), LMK로 종료된 애플리케이션 수(LMK)로 구분 하여 관찰하였다. 백 그라운드 애플리케이션 제한에 의 한 영향을 제외하기 위해 안드로이드 플랫폼의 MAX_ HIDDEN_APPS값을 무한대로 설정하여 실험하였다. 실 험 시나리오가 동일한 16개의 애플리케이션에 대해 반 복되므로 LMK의 발생 횟수가 증가할수록 Cold Start 발생 횟수가 증가하고 그에 비해 Warm Start의 수는 감소하게 된다. 따라서 Cold Start 횟수가 제안하는 기 법의 오버헤드라고 할 수 있다. Cold Start값을 비교하 면, 스왑을 적용했을 때 LMK 적용보다 우선적으로 스 왑을 통해 메모리 회수를 하기 때문에 LMK발생 횟수가 감소하게 된다. 따라서 그로 인해 스왑을 적용했을 때 Cold Start발생 횟수가 감소하는 것과 동시에 Warm Start의 발생 횟수가 증가한다. 그에 비해 쓰기 조절 기 법을 적용하였을 때는 반대로 LMK를 우선적으로 이용 하여 메모리를 회수하기 때문에 LMK의 발생 횟수가 증가하여 Cold Start 발생 횟수가 증가한다. 그러나 기 존에 스왑을 적용하지 않은 경우보다 LMK 발생 횟수 가 적은 것을 알 수 있는데 이는 스왑을 이용하여 메모 리가 회수되기 때문에 메모리 압력이 완화되어 LMK의 그림 4 제안하는 기법에 대한 애플리케이션 동작 Fig. 4 Comparison on Application Action 발생 횟수가 감소하기 때문이다. 따라서 제안하는 기법 에 의해 발생하는 오버헤드는 크지 않은 것을 알 수 있다. 5. 결론 및 향후 연구 본 논문에서는 운영체제 수준에서 낸드 플래시 기반 저장장치에 대한 쓰기를 감소시켜 낸드 플래시 기반 저 장장치의 수명을 보장하는 기법을 제안하고 그로 인해 얻을 수 있는 효과에 대해 실험을 통해 제시하고 있다. 호스트로부터 저장장치로 요청되는 쓰기 양을 모니터링 하여 주기적인 메모리 회수 시 발생하는 스왑, 더티 페 이지 쓰기로 인해 발생하는 과도한 데이터 쓰기 문제를 여러 메모리 회수 방법에 대해 임계 값 조정을 통해 해 결하였다. 그 결과 43%의 쓰기 감소를 보였으며 LMK 적용으로 인한 오버헤드가 크지 않은 것을 확인하였다. 향후에는 워크로드 상황에 따른 쓰기 조절 동적 모델 링에 대한 연구를 진행할 필요가 있다. References [1] S. Lee, T. Kim, J. Park, J. Kim, "An integrated approach for managing the lifetime of flash-based SSDs," Proceedings of the Conference on Design, Automation and Test in Europe, pp.1522-1525, March. 2013. [2] S. Lee, D. Shin, Y.-J. Kim, and J. Kim, "LAST: Locality-Aware Sector Translation for NAND Flash Memory-Based Storage Systems," ACM SIGOPS Operating Systems Review, 2008. [3] K. Yim, H. Bahn, and K. Koh, "A Flash Compression Layer for Smartmedia Card Systems," IEEE Transactions on Consumer Electronics, 2004. [4] F. Chen, T. Luo, and X. Zhang, "CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory Based Solid State Drives," in Proceedings of the USENIX Conference on File and Storage Technologies, 2011.