NAND flash memory is widely used as a next-generation storage that rapidly replaces hard disks. Since flash memory does not allow overwriting, pages must be erased before data can be written. Such characteristics of flash causes write amplification, shortening the storage lifetime and degrading performance. In this thesis, we propose a method to mitigate write amplification by improving the efficiency of garbage collection, which often aggravates write amplification. A novel hot data identification method that extends existing algorithms is proposed, and block of the classified data is determined by its frequency thereby reducing the overhead of garbage collection. We implement the proposed scheme on a real hardware system called Jasmine OpenSSD platform and verify that the garbage collection overhead is reduced by up to 90% compared with the existing algorithms. Another problem with garbage collection is that some resources (e.g., channels, chip) are blocked due to garbage collection activity. Since access to these resources is blocked during garbage collection, co-located requests cannot finish until garbage collection completes. In this paper, we propose a method to reduce the read latency during garbage collection. We enable the flash translation layer to grasp the information about the chip on which garbage collection will be performed, so that the information is utilized when the data is replaced in the LRU cache. Through the proposed method, we confirm that that the probability of reading data from the cache during garbage collection increases by about 8%.
낸드 플래시 메모리는 하드 디스크를 대체하는 차세대 스토리지로서 수 년 동안 각광받고 있다. 그러나 플래시 메모리는 중복 쓰기를 허용하지 않아 데이터가 쓰여지기 전에 먼저 페이지가 지워져야 하는 독특한 특성을 가지는데, 이러한 플래시의 특성은 쓰기 증폭 현상을 유발하여 스토리지의 수명을 단축시키고 성능을 저하시킨다. 본 논문에서는 쓰기 증폭 현상을 완화하기 위해 그 주된 원인인 가비지 컬렉션의 효율성을 높이는 법에 대해 제안하였다. 기존의 알고리즘을 개선한 핫 데이터 판별 법을 제시하였고 가비지 컬렉션을 고려하여 구분된 데이터들의 블록을 결정하였다. 하드웨어 플랫폼 OpenSSD jasmine 보드를 사용하여 제안하는 알고리즘을 구현한 결과 기존의 알고리즘들에 비해 최대 90% 가량 가비지 컬렉션 오버헤드가 감소한 것을 확인 하였다. 가비지 컬렉션이 유발하는 또 한가지 문제는 가비지 컬렉션 활동으로 인해 일부 리소스들이 블로킹 되는 것이다. 가비지 컬렉션이 수행이 되는 동안 해당 리소스 (예: 채널, 칩) 들에 대한 접근이 차단되기 때문에 이들에 대한 명령이 들어 오게 되면 상당한 명령 대기 시간이 발생할 수 있다. 본 논문에서는 가비지 컬렉션이 수행되어도 읽기 동작의 대기 시간을 줄일 수 있는 방법을 제안하였다. 가비지 컬렉션이 수행될 칩에 대한 정보를 플래시 변환 계층이 미리 파악하도록 하여 LRU 캐시에서 데이터가 교체될 때 이 정보를 활용하도록 하였다. 제안된 방법을 통해 가비지 컬렉션이 수행되는 동한 캐시에서 데이터를 읽어온 확률이 최대 약 8% 증가 한 것을 확인하였다.