Abstract
NAND flash memory-based Solid State Drives (SSD) have lots of merits compared to traditional hard disk drives (HDD). However, random write in SSD is still far slower than sequential read/write and random read. There are two independent approaches to resolve this problem: 1) using part of the flash memory blocks as log blocks, and 2) using internal write buffer (DRAM or Non-Volatile RAM) in SSD. While log blocks are managed by the Flash Translation Layer (FTL), write buffer management has been treated separately from FTL. Write buffer management schemes did not use the exact status of log blocks and log block management schemes in FTL did not consider the behavior of write buffer management scheme. In this paper, we first show that log blocks and write buffer have a tight relationship to each other, which necessitates integrated management of both of them. Since log blocks also can be viewed as another type of write buffer, we can manage both of them as an integrated write buffer. Then we provide three design criteria for the integrated write buffer management scheme which can be very useful to SSD firmware designers.
낸드 플래시 기반 SSD는 HDD와 비교하여 많은 장점을 가지고 있다. 하지만 임의 접근 쓰기 요청은 임의 접근 읽기 요청이나 연속 접급 쓰기와 읽기에 비하여 SSD의 접근성을 떨어뜨리고 수명을 단축시키는 문제점을 발생시킨다. 이런 문제점을 해결하기위해 SSD 내부에서는 낸드 플래시 메모리의 일부분을 로그 블록으로 관리하는 기법과 DRAM 혹은 비휘발성 메모리를 쓰기 버퍼로 관리하는 기법들이 제안되었다. 하지만 지금까지 로그 블록 관리와 쓰기 버퍼 관리는 다른 계층에서 연구되어왔다. 즉 로그블록 관리는 쓰기 버퍼의 상태를 고려하지 않았고 또한 쓰기 버퍼 관리 기법도 로그 블록의 상태를 고려하지 않았다. 본 논문에서는 처음으로 로그 블록과 쓰기 버퍼 사이의 관련성을 통해 두 계층의 통합관리의 필요성을 제시한다. 그리고 통합된 쓰기 버퍼 설계를 위해 세 가지 고려해야할 사항을 제공한다.