Digital Recipe
CAVE : Channel-aware buffer management scheme for Solid State Disk 본문
컴퓨터 공학/(분야별) 스토리지(SSD)
CAVE : Channel-aware buffer management scheme for Solid State Disk
노리터 2011. 6. 15. 19:10논문제목 : CAVE : Channel-aware buffer management scheme for Solid State Disk
논문저자 : Sungkyu Park, Youngwoo Park, Gyudong Shim and Kyuho Park
논문저자 : Sungkyu Park, Youngwoo Park, Gyudong Shim and Kyuho Park
KAIST Univ.
논문발표 : SAC 2011
1. Introduction
SSD는 성능향상을 위해 하드웨어 구조상 멀티채널과 멀티웨이를 가지고 있다. FTL이라 하면 이런 병렬적 구조를 고려하지 않은 1-channel FTL와 병렬성을 위해 Clustered Page, Clustered Block 개념을 고려한 Multi-channel FTL로 나눌 수 있다.
하지만 Multi-channel FTL은 병렬성을 활용한 성능은 향상되지만 SSD의 특성상 Clustered Block 단위로 Garbage Collection을 해야하기 때문에 G.C에 따른 오버헤드가 상당히 크다. 반대로 1-channel FTL은 병렬성은 떨어지지만 Block 단위로 G.C를 하기 때문에 G.C에 따른 오버헤드가 작다.
따라서 이 논문에서는 1-channel FTL이 SSD가 가진 병렬성을 최대한 활용할 수 있는 버퍼 관리 기법을 제안한다.
(※ SSD에 대한 기본지식은 따로 이야기 하지 않는다)
2. CAVE 알고리즘
- CAVE는 1-Channel용 버퍼 관리 기법이다.
- CAVE는 다른 버퍼 관리 기법과 함께 사용한다.
- CAVE는 Write Buffer에서 얼마나 많은 데이터를 내보낼지 결정하는 기법이다.
일반적인 버퍼 관리 기법은 버퍼에서 어떤 데이터를 내보낼까 결정하는 알고리즘을 가진다. 반면 CAVE는 어떤 데이터를 내보낼지 결정이 되어있다면 한번에 얼마나 많은 데이터를 내보낼까 결정하는 기법이다.
Figure 3을 보자. 오른쪽 그림은 Clustered Page를 사용하는 Multi-channel FTL에 대해 표현한 그림이고 왼쪽이 1-channel FTL에 CAVE를 적용한 그림이다. 어떤 데이터를 내보낼지는 또 다른 버퍼 관리 기법을 활용하면 된다. 단지 CAVE는 해당 SSD가 병렬성을 통해 한번에 NAND Flash에 쓸 수 있는 양을 알아내서 그 만큼 버퍼에서 데이터를 내보내게 된다.
간단히 예를 들어보면 4채널 4웨이의 SSD인 경우 총 16개의 Page를 동시에 쓸 수 있다. 따라서 이런 경우에는 CAVE는 16개의 Page 크기만큼 데이터를 버퍼에서 내보낼 것이다.
이렇게 SSD가 쓸 수 있는 최대 처리량만큼 버퍼에서 내보낸다면 1-channel FTL에 관계없이 SSD가 가진 하드웨어적인 병렬성을 다 사용할 수 있다 라는것이 CAVE의 이론이다.
3. 실험 및 결과
실험은 시뮬레이터를 통해 하였다. 버퍼에서 한번에 많은 데이터를 내보내지만 버퍼의 크기가 클수록 Hit Ratio는 Multi-channel FTL과 비교해 보았을 때 거의 떨어지지 않았다. 반면 OLTP, GENERAL, SYSMARK의 3가지 트레이스에 대한 실행시간을 측정해 보았을 때 확연히 다른 성능향상을 확인할 수 있었다.
이유로 실행시간에 Garbage Collection Overhead가 차지하는 비중이 상당히 큰데 1-channel FTL + CAVE를 통해 Garbage Collection Overhaed를 크게 줄였기 때문이라고 한다.
1. Introduction
SSD는 성능향상을 위해 하드웨어 구조상 멀티채널과 멀티웨이를 가지고 있다. FTL이라 하면 이런 병렬적 구조를 고려하지 않은 1-channel FTL와 병렬성을 위해 Clustered Page, Clustered Block 개념을 고려한 Multi-channel FTL로 나눌 수 있다.
하지만 Multi-channel FTL은 병렬성을 활용한 성능은 향상되지만 SSD의 특성상 Clustered Block 단위로 Garbage Collection을 해야하기 때문에 G.C에 따른 오버헤드가 상당히 크다. 반대로 1-channel FTL은 병렬성은 떨어지지만 Block 단위로 G.C를 하기 때문에 G.C에 따른 오버헤드가 작다.
따라서 이 논문에서는 1-channel FTL이 SSD가 가진 병렬성을 최대한 활용할 수 있는 버퍼 관리 기법을 제안한다.
(※ SSD에 대한 기본지식은 따로 이야기 하지 않는다)
2. CAVE 알고리즘
- CAVE는 1-Channel용 버퍼 관리 기법이다.
- CAVE는 다른 버퍼 관리 기법과 함께 사용한다.
- CAVE는 Write Buffer에서 얼마나 많은 데이터를 내보낼지 결정하는 기법이다.
일반적인 버퍼 관리 기법은 버퍼에서 어떤 데이터를 내보낼까 결정하는 알고리즘을 가진다. 반면 CAVE는 어떤 데이터를 내보낼지 결정이 되어있다면 한번에 얼마나 많은 데이터를 내보낼까 결정하는 기법이다.
Figure 3을 보자. 오른쪽 그림은 Clustered Page를 사용하는 Multi-channel FTL에 대해 표현한 그림이고 왼쪽이 1-channel FTL에 CAVE를 적용한 그림이다. 어떤 데이터를 내보낼지는 또 다른 버퍼 관리 기법을 활용하면 된다. 단지 CAVE는 해당 SSD가 병렬성을 통해 한번에 NAND Flash에 쓸 수 있는 양을 알아내서 그 만큼 버퍼에서 데이터를 내보내게 된다.
간단히 예를 들어보면 4채널 4웨이의 SSD인 경우 총 16개의 Page를 동시에 쓸 수 있다. 따라서 이런 경우에는 CAVE는 16개의 Page 크기만큼 데이터를 버퍼에서 내보낼 것이다.
이렇게 SSD가 쓸 수 있는 최대 처리량만큼 버퍼에서 내보낸다면 1-channel FTL에 관계없이 SSD가 가진 하드웨어적인 병렬성을 다 사용할 수 있다 라는것이 CAVE의 이론이다.
3. 실험 및 결과
실험은 시뮬레이터를 통해 하였다. 버퍼에서 한번에 많은 데이터를 내보내지만 버퍼의 크기가 클수록 Hit Ratio는 Multi-channel FTL과 비교해 보았을 때 거의 떨어지지 않았다. 반면 OLTP, GENERAL, SYSMARK의 3가지 트레이스에 대한 실행시간을 측정해 보았을 때 확연히 다른 성능향상을 확인할 수 있었다.
이유로 실행시간에 Garbage Collection Overhead가 차지하는 비중이 상당히 큰데 1-channel FTL + CAVE를 통해 Garbage Collection Overhaed를 크게 줄였기 때문이라고 한다.
2011. 06. 15
Posted By HoSeok Seo
Comments