** SSD Hot/Cold Separation
Download
Report
Transcript ** SSD Hot/Cold Separation
2012 2학기
프로젝트 1 J조
이상선 최성준 조겨리
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
주소 분할 관리 기법을 이용해서 기존의
Hot / Cold Separation 기법보다 효율적인
Separation 알고리즘을 구현한다.
비교 기법
1. 기존 기법 : 크기 기반 구분 (대조군)
2. ADIVIM기법 : 주소 분할 관리 기법
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
Development Environment
개발 환경 및 언어
Linux
C 언어
개발 도구
Disksim 4.0
미시간 대학에서 만들어져 CMU에서 개량된 디스크 시뮬레
이터.
호스트로부터 I/O 명령이 내려오면 컨트롤러, 버스, 디스크
등을 거쳐 명령이 수행되는 것을 시뮬레이션 한다.
SSD Patch
Disksim에 SSD를 추가해주는 패치. ADIVIM을 구현한 부분.
Input : I/O request로 구성된 trace 파일
시간
디바이스
번호
섹터 번호
섹터 길이
Write / Read
Output : Input으로 받은 request를
처리한 결과에 대한 통계자료
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
SSD의 한계
덮어쓰기가 불가능
write는 page 단위, erase는 block 단위
해당 block의 모든 page가 invalid해야 erase 가능
혹은 valid한 page의 이동 후 erase 가능
SSD의 계층 구조
SSD > gang > element > parunit > plane >
block > page
본 프로젝트에서는 gang과 parunit을 고려하지
않음
Hot/Cold Separation
불필요한 write이나 erase를 최소화하기 위함
Page mapping : mapping table을 위한
상대적으로 큰 메모리 필요
Block mapping : 비효율적 garbage collection
Hybrid mapping :
자주 업데이트 되는 hot data는 page mapping
간헐적으로 업데이트되는 cold data는 block
mapping
Hot/cold의 구분이 필요
Old hot/cold separator (대조군)
크기 기반 : 예를 들면 Data의 크기가 한 Block
미만이면 Hot, 한 Block 이상이면 Cold
ADIVIM (주소 분할 관리 기법)
한 파일을 통째로 Hot이나 Cold로 분류
자주 업데이트되는 파일은 파일 전체가 한 번에
업데이트 될 가능성이 높다는 사실에 착안
I/O request를 분석, 동시에 access되는 주소 인식
(ex. 2번 이상 write & read 명령이 들어온 연속된
주소)
기존 SSD patch Control Flow
Host
Request
SSD
Page Mapping – Full Striping
e0
e1
e2
e3
e4
e5
e6
e7
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
Host
Device Driver
Request
SSD
Bus
Host Interface
FTL
주소 매핑
플래시 메모리 관리
e1
...
...
Hybrid Mapping
e0
ADIVIM
Module
ADIVIM
Separator
e2
e3
e4
e5
e6
e7
…
Request
From
Host
ADIVIM
Module
ADIVIM Separator
Hot / Cold
Hot / Cold
Hot
Page Mapping
Block
Cold
Block Mapping
plane
plane
plane
plane
Page
Page
Page
Page
Page
Page
Page
Page
plane
plane
plane
plane
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block
No
Change
Hot
Cold
No
Change
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
다음 요소들에 대해 각 방법의 성능 비교
1. Write Amplification Factor
data written to the flash memory
data written by the host
- 값이 클 수록 불필요한 write가 있었다는 의미
(불필요한 write 의 예 : erase를 위해 valid page를
다른 block으로 옮기는 것)
- 직접 구현하였음.
2. SSD Lifetime
- 모든 page가 invalid 된 block을 지울 때마다 감소
- SSD Extension output : Average lifetime
3. Mapping table size
- 자주 안 쓰는 Cold data를 Block으로 저장해둠으로써 Mapping table
size를 줄일 수 있을 것이다
- hot apn 개수 + (cold apn 개수 / 63)
jpeg_copy_2gb_ntfs trace
ADIVIM(r,w): 해당 Data의 Read 횟수가 r 초과,
Write횟수가 w 초과인 경우 Hot, 아니면 Cold
Size – n : Req의 길이 < n 이면
Hot, 아니면 Cold
WAF
70
60
59.0625
50
40
30
WAF
20
10
5.763157895
5.763157895
size_2
Hybrid : size2 +
ADIVIM_0_0
0
size_1 - Block
Mapping
Power pack trace
ADIVIM(r,w): 해당 Data의 Read 횟수가 r 초과,
Write횟수가 w 초과인 경우 Hot, 아니면 Cold
Size – n : Req의 길이 < n 이면
Hot, 아니면 Cold
WAF
16
14
13.9375
13.9375
12
10
8.392857
8
WAF
6
4
2
0
size_1 - Block
Mapping
size_2
Hybrid : size2 +
ADIVIM_0_0
Project Overview
Specification
Background Study
Implementation
Demo & Result
Schedule & Task Assignment
Study
• 이상선
기존 기법 구현
• 조겨리
ADIVIM 기법 구현
• 최성준
Hybrid
Mapping
• 이상선
최성준
성능 통계 수집
• 조겨리
이상선
데모 작성
• 최성준
최성준
이상선
조겨리
Q & A ?