Many mobile devices demand a large-capacity and high-performance storage system in order to store, retrieve, and process large multimedia data quickly. In those devices, NAND flash memory is already becoming one of the most common storage medium because of its versatile features such as non-volatility, solid-state reliability, low power consumption, shock resistance, and high cell densities. NAND flash memory, however, has a restriction that a page, which is the basic unit of read and write operations, should be erased before being rewritten in the same location. This characteristic is sometimes called erase-before-write. Moreover, the erase operations can only be performed on a larger block than the page. Therefore, an intermediate software layer called a flash translation layer (FTL) is usually employed to hide the limitation of erase-before-write.
In this thesis, we present a high-performance NAND flash-based storage system based on a multi-channel architecture and proposes a novel superblock-based FTL scheme, which combines a set of adjacent logical blocks into a superblock. The proposed system consists of multiple independent channels, where each channel has multiple NAND flash memory chips. On this hardware, we investigate three optimization techniques to exploit I/O parallelism: striping, interleaving, and pipelining. By combining all the optimization techniques carefully, our system has shown 3.6 times higher overall performance compared to the conventional single-channel architecture.
In the proposed FTL scheme, superblocks are mapped at coarse granularity, while pages inside the superblock are mapped freely at fine granularity to any location in several physical blocks. To reduce extra storage and flash memory operations, the fine-grain mapping information is stored in the spare area of NAND flash memory. This hybrid mapping technique has the flexibility provided by fine-grain address translation, while reducing the memory overhead to the level of coarse-grain address translation. Our experimental results show that the proposed FTL scheme decreases the garbage collection overhead up to 41% compared to previous FTL schemes with roughly the same memory overhead.
오늘날 많은 이동기기에서 대용량의 멀티미디어 자료를 빠르게 저장하고, 읽고, 처리하기 위해서 대용량, 고성능의 저장 장치를 필요로 한다. 낸드 플래시 메모리는 비휘발성, 물리적 안정성, 저전력, 고밀도, 충격에 강함과 같은 이동 환경에 적합한 특성 때문에 이동기기의 저장 장치로 각광을 받고 있다. 하지만, 일반적인 하드 디스크와 달리 낸드 플래시 메모리는 같은 위치에 자료를 덮어쓰려면 먼저 소거 연산을 수행해야만 하는 제약사항이 있다. 더욱이 소거 연산은 읽기/쓰기 연산의 단위인 페이지보다 큰 블록단위로 수행되기 때문에 소거할 블록에 기록되어 있는 유효한 자료를 먼저 다른 블록으로 복사하는 추가적인 쓰기 연산을 유발한다. 이러한 추가적인 연산을 숨기고 낸드 플래시 메모리를 하드 디스크와 같이 덮어쓰기가 가능한 것처럼 보여주기 위해서 이동기기에서는 FTL (Flash Translation Layer)이라는 소프트웨어를 사용한다.
본 논문에서는 낸드 플래시 기반의 고성능 저장 장치를 위한 다중 채널의 하드웨어 구조 및 연속된 논리블록을 하나의 슈퍼블록으로 구성한 슈퍼블록 기반의 FTL 소프트웨어 구조를 제안 한다. 다중채널 구조는 여러 개의 낸드 플래시를 제어하는 복수개의 채널로 구성하였으며, 성능을 높이기 위해서 병렬성을 극대화 할 수 있는 스트라이핑(striping), 인터리빙(interleaving), 파이프라이닝(pipelining)의 세 가지 최적화 기법을 적용하여, 단일 채널 구조 대비 최대 3.6배의 성능 향상을 보여준다.
본 논문에서 제안하는 슈퍼블록 기반의 FTL에서 기본적으로 블록 단위의 사상 정보를 유지하며, 여러 연속된 논리블록으로 구성된 슈퍼블록에 속한 페이지를 페이지 단위로 특정 물리블록 내에 자유롭게 사상하는 새로운 복합 사상 기법을 도입한다. 또한, 메모리 요구량을 줄이기 위해서 페이지 단위의 사상 정보를 낸드 플래시 메모리의 여분의 공간에 저장한다. 그 결과, 기존의 블록 단위의 사상방법과 비슷한 양의 메모리를 사용하면서, 페이지 단위의 사상방법이 제공하는 유연성을 추가해서, 지우기 연산 및 추가적인 페이지 복사 비용을 최대 41% 줄였다.