CAVE : Channel-Aware Buffer Management Scheme for Solid State Disk SAC '11 Sungkyu Park, Youngwoo Park, Gyudong Shim and KyuHo Park From KAIST 2011. 06. 02 (Thu) Kwangwoon univ. SystemSoftware Lab. HoSeok Seo
Introduction The General Architecture of SSD 일반적인 SSD의 아키텍처입니다. I/O 성능을 최대한 높이기 위해 채널과 웨이를 사용합니다. 이와 같은 4채널 2웨이 아키텍처에서는 최대 8개의 페이지에 동시에 쓰기가 가능합니다. Maximize the performance with the parallelism utilizing 4 channels and 2 Ways
Introduction Multi-channel FTL Scheme 1-channel FTL Scheme To Achieve the maximum of parallelism I/O operations are performed in a clustered page unit Erase operations are performed in a clustered block unit Related FTL schemes MCsplit Scheme, the SubGroup Scheme, etc… 1-channel FTL Scheme Low garbage collection overhead instead of a multi-channel FTL Related FTL Schemes BAST, FAST, LAST, etc… SSD 아키텍처를 활용하기 위한 FTL은 크게 멀티채널 FTL과 1채널 FTL로 분류될 수 있는데 멀티채널 FTL은 잘아시는 Clustered Page 단위로 I/O를 수행하고 Clustered Block 단위로 삭제연산을 수행함으로서 채널과 웨이를 적극 활용합니다. 1채널 FTL는 SSD의 멀티채널 활용을 고려하지 않은 FTL로서 멀티채널 FTL에 비하여 적은 G.C 오버헤드를 가진다는 장점이 있습니다.
Introduction 1-channel FTL Scheme vs Multi-channel FTL Scheme 1채널 FTL과 멀티채널 FTL의 비교입니다. 1채널 FTL은 Block 크기만큼 연속된 page를 하나의 채널로 보내지만 멀티채널 FTL은 각 page를 채널로 분산시켜 쓰기작업을 합니다. 따라서 1채널 FTL은 SSD 아키텍처가 많은 채널을 가지고 있더라도 활용하지 못한다는 단점을 가지고 있습니다. 반면 멀티채널 FTL은 성능면에서 우수하지만 G.C가 Clustered Block 단위로 이뤄지기 때문에 1-채널 FTL에 비하여 많은 오버헤드가 발생된다는 단점이 있습니다. 요약하여 1-채널 FTL은 멀티채널 FTL에 비하여 G.C 오버헤드 측면에서 장점을 가지지만 성능면에서 떨어진다고 말할 수 있습니다.
What is CAVE? CAVE (Channel-aware victim eviction) is Buffer Management Scheme proposed to achieve good write performance in 1-ch FTL like multi-ch FTL Scheme used with 1-channel FTL and other buffer Management Scheme What is Different between CAVE and other buffer management? Other buffer management Focus on which data have to are evicted ( = eviction order ) Related buffer scheme : CFLRU, BPLRU, FAB, REF, CLC CAVE Focus on How many victims have to are evicted ( = eviction rate ) CAVE에 대해서 소개하도록 하겠습니다. CAVE는 버퍼 관리 기법입니다. CAVE는 1-채널 FTL이 멀티채널 FTL처럼 SSD의 채널을 적극 활용하지 못한다는 단점을 극복하기 위한 기법입니다. CAVE는 1-채널 FTL와 다른 버퍼 관리 기법과 함께 사용합니다. CAVE가 버퍼 관리 기법임에도 다른 버퍼 관리 기법과 무엇이 다른지 간단히 설명을 드리면 일반적인 버퍼 관리 기법은 버퍼에서 어떤 데이터가 쫓겨나야 하는지 결정하는데 중점을 둔다고 보면 CAVE는 버퍼에서 얼마나 많은 데이터가 쫓겨나야 하는지 결정하는데 중점을 둔다고 보시면 됩니다. 이 논문에서는 각각 eviction order와 eviction rate라고 명명하고 있습니다.
CAVE Algorithm CAVE 알고리즘의 핵심은 1-채널 FTL을 사용한다는 것과 버퍼가 꽉차서 victim들을 쫓아낼 때 의 pages 수를 그 SSD 아키텍처가 최대접근 가능한 수만큼 보낸다는데 있습니다. 오른쪽 그림은 멀티채널 FTL이고 왼쪽 그림은 CAVE를 1-채널 FTL과 Block-level LRU에 적용한 예제입니다. 이 논문에서 Page Level LRU로 사용하는 것은 CFLRU이고 Block Level LRU로 사용하는 것은 BPLRU입니다. 다시 설명하여 오른쪽 예제처럼 멀티채널 FTL은 멀티채널를 통해 연속된 Page를 분산해서 쓰기작업을 하는 반면 1-채널 FTL은 Channel Allocator를 통해 연속된 Page를 분산하지 않고 논리적인 Block단위로 각 채널에 분산함으로서 1-채널 FTL이라도 SSD가 가진 채널과 웨이를 적극 활용할 수 있도록 하였습니다. 뿐만 아니라 1-채널 FTL이기 때문에 각 Block마다 개별적인 G.C이 가능하기 때문에 멀티채널 FTL 처럼 채널과 웨이를 적극 활용하면서 G.C 오버헤드 측면에서 장점을 가질 수 있습니다. 정리하여 CAVE는 Write Buffer를 활용하여 1-채널 FTL를 멀티채널 FTL처럼 채널과 웨이를 적극 활용하는 정책이 되겠습니다.
Experimental Setup Used scheme list for experiment FTL 1-Channel FTL Scheme : BAST Multi-Channel FTL Scheme : MCsplit Buffer Management Scheme Page-level LRU : CFLRU Block-level LRU : BPLRU 실제로 실험을 위해 사용한 기법들입니다. 1-채널 FTL로서 BAST를 사용하였고 멀티채널 FTL로서 Mcsplit라는 기법을 사용하였습니다. 버퍼기법으로서 Page단위로 버퍼를 관리하는 CFLRU, Block단위로 버퍼를 관리하는 BPLRU를 사용하였습니다. CFLRU와 BPLRU에 대해 간략히 설명을 드리면 CFLRU는 Clean한 Page를 먼저 내쫓는 정책이 특징이고 BPLRU는 Block단위로 가장 오래 사용하지 않은 Block를 내쫓는 정책이 특징입니다.
Experimental Setup - Evaluation Matrix : Hit Rate, Performance 시뮬레이터는 8채널 4웨이를 사용하고 있으며 NAND Flash는 삼성 SLC 1기가를 사용하였습니다. 트레이스로 OLTP와 GENERAL, SYSMARK를 사용하였고 비교할 성능 기준으로 Hit Rate와 Performance를 사용하였습니다. - Using Trace-driven simulator - Evaluation Matrix : Hit Rate, Performance
Results 각 트레이스에 대해 CAVE가 기존 버퍼 관리 기법의 Hit Rate를 크게 떨어트리지 않는 다는 것을 보여주는 결과 그래프입니다. CAVE가 한번에 많은 데이터를 버퍼에서 내쫓지만 버퍼용량이 클수록 기존 버퍼 관리 기법의 Hit Rate를 떨어트리지 않는다는 것을 확인할 수 있습니다. Not bad about Hit Ratio with CAVE compared with Conventional Method
Results Good Performance with CAVE compared to Conventional Method CAVE를 사용한 1-채널 FTL와 사용하지 않은 FTL의 실행시간 결과 그래프입니다. 이 그래프에서 나타내는 실행시간은 쓰기시간과 G.C시간을 포함한 시간입니다. G.C은 필요시 수행됩니다. 이 그래프로 보아 CAVE를 사용한 1-채널 FTL이 기존과 비교하여 큰 실행시간 향상을 가져온 것을 확인할 수 있습니다. 특히 버퍼가 클수록 그 효과는 증가됩니다. Good Performance with CAVE compared to Conventional Method
Results w/o CAVE was evaluated with Multi-channel FTL 끝으로 G.C이 실행시간에서 차지하는 비율을 나타내는 그래프입니다. 각 항목에서 왼쪽 3개의 그래프는 멀티채널 FTL에서의 G.C 비중이고 오른쪽 3개는 1-채널 FTL에서의 G.C 비중입니다. 이 결과그래프로 보아 멀티채널 FTL보다 CAVE를 사용한 1-채널 FTL의 G.C 오버헤드가 적음을 확인할 수 있습니다. w/o CAVE was evaluated with Multi-channel FTL w/o CAVE with Page LRU result is not 100%, it is approximately 100%
Summary This paper focus on exploiting full I/O parallelism. CAVE scheme can reduce it by 55.5%-97.4% in block-level LRU using SYSMARK compared to the conventional method. 요약하여 이 논문은 CAVE를 제안하여 1-채널 FTL이 기존 버퍼 관리 기법을 통해 멀티채널 FTL처럼 병렬성을 최대한 활용하고자 하였고 동시에 1-채널 FTL의 장점인 작은 G.C 오버헤드를 유지하고자 하였습니다.