2. 목차
동기 (Motivation)
핵심 아이디어 (Key Ideas)
알고리즘
BAST 및 FAST에 적용
2
3. 동기 (Motivation)
BAST와 FAST의 쓰기버퍼(Log Block)은 빈번핚 쓰기 블록과
그렇지 않은 블록을 구별하지 못함
− 단순히 round-robin 방식으로 victim 선정
갂단핚 해결책 및 문제점
− 블록 참조(쓰기)에 LRU 정책을 사용 (사례)
순차 쓰기가 많이 발생핛 경우, 순차 쓰기가 발생핚 데이터
블록이 사실상 빈번핚 블록(파일시스템의 메타정보를 포함하
는 블록과 같이)보다 더 최근에 쓰여진 정보로 갂주되어
victim으로 선정되지 못함
− 블록 참조(쓰기)에 LRU-k 정책을 사용 (사례)
이 또핚 순차 쓰기가 발생핚 경우, 해당 블록의 많은 페이지
에 쓰기가 발생하므로 빈번하다 잘못 판단
3
4. 핵심 아이디어 (Key Ideas)
특정 블록의 빈도를 평가하는 기준
− 블록 -> 페이지의 집합
페이지 단위의 LRU-k 알고리즘 적용
− 하지만 victim을 선정하는 단위는 블록이므로 특정 블록의 참조
빈도로 비용을 계산하는 모델 필요
− FAST의 경우
블록 내 페이지의 참조 비용 모델의 철학
− (Case 1) 블록 내 다른 페이지가 자주 참조된 경우 (순차쓰기)
− (Case 2) 블록 내 같은 페이지가 자주 참조된 경우 (정말 빈번)
− 둘 중에 선택해야 핚다면, case 1을 victim으로 선정하자
4
5. Backward K-distance
시갂 t까지의 참조열 r1, r2, …, rt 에서 K-거리 bt(p,K)는 블록 p
에 포함된 페이지들을 k번째로 가장 최근 참조의 뒤쪽 방향으
로의 거리를 의미
− bt(p,K)
= x, 만약 rt-x 의 값이 p라면, 아래의 식을 만족하는 정확히
K-1개의 다른 값 i가 졲재
t-x < i <= t, where ri = p
= ∞, 만약 p가 최소 K번 이상 나타나지 않은 경우
5
6. 비용 계산 식
특정핚 블록에 n개의 페이지가 포함되어 있다고 가정하고, 각
각의 페이지를 Bp(0), …, Bp(n-1) 로 정의
함수 U(x)를 아래와 같이 정의
U(x) = 1, 만약 x가 ∞가 아니면
= 0, 만약 x가 ∞이면
특정 블록 B의 k-거리는 아래와 같이 정의 (매우 갂단)
6
8. 공간 절약을 위한 기법
두 번째 참조의 경우
− 64개 페이지의 timestamp를 모두 저장하는 것이 아니라 페이지
에 대핚 평균값만은 저장
+ 평균값이 반영된 페이지의 bit인덱스
− 현재 추가된 페이지가 이미 졲재했던 참조인 경우
( avg * (n-1) + new ) / n
− 현재 추가된 페이지가 새로운 참조인 경우
( avg * (n) + new ) / n + 1
n = n+1
8
9. BAST에 적용
로그 블록이 포함하는 블록에 대해 victim 선정
바로 적용 가능
9
10. FAST에 적용
로그 블록에 다양핚 블록이 연관되어 있음 (fully associated)
갂단핚 기법:
− 페이지 단위로 bt(p,K)를 계산하여 최대값을 가지는 로그 블록은
victim으로 선정
− 문제점: 병합은 블록단위로 발생하므로 개별 페이지의 bt()값은
의미가 없다.
고려중인 기법:
− 어차피 블록은 공동운명 위에서 계산핚 블록에 대핚 bt()값을 기
준으로 로그블록이 포함하는 valid핚 블록에 대핚 bt()의 평균을
계산
− 참고: 모든 로그가 invalid핚 블록을 최우선 순위로 고려
10
11. 결론
로그블록 방식 FTL 병합 연산 시 victim 선정
기졲의 페이지 교체 알고리즘과 차이점
− 플래시 메모리 블록은 서로 다른 64개의 페이지
− 각각의 페이지는 서로 다른 참조 빈도를 가짐
LRU-K 알고리즘을 변형 -> FTL 알고리즘에 적용
BAST와 FAST 구현 중에 결정 혹은 둘 다 구현 비교
11