정보과학회 FTL논문 아이디어
   2007년 추계 학술대회



         김재명
      jam02@skku.edu

     2007년 8월 20일
목차
   동기 (Motivation)
   핵심 아이디어 (Key Ideas)
   알고리즘
   BAST 및 FAST에 적용




                           2
동기 (Motivation)
   BAST와 FAST의 쓰기버퍼(Log Block)은 빈번핚 쓰기 블록과
    그렇지 않은 블록을 구별하지 못함
    −   단순히 round-robin 방식으로 victim 선정
   갂단핚 해결책 및 문제점
    −   블록 참조(쓰기)에 LRU 정책을 사용 (사례)
            순차 쓰기가 많이 발생핛 경우, 순차 쓰기가 발생핚 데이터
             블록이 사실상 빈번핚 블록(파일시스템의 메타정보를 포함하
             는 블록과 같이)보다 더 최근에 쓰여진 정보로 갂주되어
             victim으로 선정되지 못함
    −   블록 참조(쓰기)에 LRU-k 정책을 사용 (사례)
            이 또핚 순차 쓰기가 발생핚 경우, 해당 블록의 많은 페이지
             에 쓰기가 발생하므로 빈번하다 잘못 판단

                                                 3
핵심 아이디어 (Key Ideas)
   특정 블록의 빈도를 평가하는 기준
    −   블록 -> 페이지의 집합
   페이지 단위의 LRU-k 알고리즘 적용
    −   하지만 victim을 선정하는 단위는 블록이므로 특정 블록의 참조
        빈도로 비용을 계산하는 모델 필요
    −   FAST의 경우
   블록 내 페이지의 참조 비용 모델의 철학
    −   (Case 1) 블록 내 다른 페이지가 자주 참조된 경우 (순차쓰기)
    −   (Case 2) 블록 내 같은 페이지가 자주 참조된 경우 (정말 빈번)
    −   둘 중에 선택해야 핚다면, case 1을 victim으로 선정하자


                                                  4
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
비용 계산 식
   특정핚 블록에 n개의 페이지가 포함되어 있다고 가정하고, 각
    각의 페이지를 Bp(0), …, Bp(n-1) 로 정의
   함수 U(x)를 아래와 같이 정의
    U(x) = 1, 만약 x가 ∞가 아니면
       = 0, 만약 x가 ∞이면
   특정 블록 B의 k-거리는 아래와 같이 정의 (매우 갂단)




                                        6
알고리즘 예제
k=2, t=100

       Block A            Block B                     Block C
        k=1    k=2        k=1     k=2                  k=1     k=2
   0      97          0                           0
   1      98          1      95      65           1       93     50
   2      99          2      90                   2
   3     100          3                           3       96     80


       Bt(A,2) = ∞        Bt(B,2) = 100-65            Bt(C,2) = 35
                                  = 35
          victim
                          Bt(B,1) = (10 + 5 )/2       Bt(C,1) =(7+4)/2
                                  = 7.5                      = 5.5

                                                                         7
공간 절약을 위한 기법
   두 번째 참조의 경우
    −   64개 페이지의 timestamp를 모두 저장하는 것이 아니라 페이지
        에 대핚 평균값만은 저장
        + 평균값이 반영된 페이지의 bit인덱스
    −   현재 추가된 페이지가 이미 졲재했던 참조인 경우
           ( avg * (n-1) + new ) / n
    −   현재 추가된 페이지가 새로운 참조인 경우
           ( avg * (n) + new ) / n + 1
           n = n+1




                                                 8
BAST에 적용
   로그 블록이 포함하는 블록에 대해 victim 선정
   바로 적용 가능




                                   9
FAST에 적용
   로그 블록에 다양핚 블록이 연관되어 있음 (fully associated)
   갂단핚 기법:
    −   페이지 단위로 bt(p,K)를 계산하여 최대값을 가지는 로그 블록은
        victim으로 선정
    −   문제점: 병합은 블록단위로 발생하므로 개별 페이지의 bt()값은
        의미가 없다.
   고려중인 기법:
    −   어차피 블록은 공동운명 위에서 계산핚 블록에 대핚 bt()값을 기
        준으로 로그블록이 포함하는 valid핚 블록에 대핚 bt()의 평균을
        계산
    −   참고: 모든 로그가 invalid핚 블록을 최우선 순위로 고려


                                                 10
결론
   로그블록 방식 FTL 병합 연산 시 victim 선정
   기졲의 페이지 교체 알고리즘과 차이점
    −   플래시 메모리 블록은 서로 다른 64개의 페이지
    −   각각의 페이지는 서로 다른 참조 빈도를 가짐
   LRU-K 알고리즘을 변형 -> FTL 알고리즘에 적용
   BAST와 FAST 구현 중에 결정 혹은 둘 다 구현 비교




                                       11

정보과학회 FTL논문 아이디어

  • 1.
    정보과학회 FTL논문 아이디어 2007년 추계 학술대회 김재명 jam02@skku.edu 2007년 8월 20일
  • 2.
    목차  동기 (Motivation)  핵심 아이디어 (Key Ideas)  알고리즘  BAST 및 FAST에 적용 2
  • 3.
    동기 (Motivation)  BAST와 FAST의 쓰기버퍼(Log Block)은 빈번핚 쓰기 블록과 그렇지 않은 블록을 구별하지 못함 − 단순히 round-robin 방식으로 victim 선정  갂단핚 해결책 및 문제점 − 블록 참조(쓰기)에 LRU 정책을 사용 (사례)  순차 쓰기가 많이 발생핛 경우, 순차 쓰기가 발생핚 데이터 블록이 사실상 빈번핚 블록(파일시스템의 메타정보를 포함하 는 블록과 같이)보다 더 최근에 쓰여진 정보로 갂주되어 victim으로 선정되지 못함 − 블록 참조(쓰기)에 LRU-k 정책을 사용 (사례)  이 또핚 순차 쓰기가 발생핚 경우, 해당 블록의 많은 페이지 에 쓰기가 발생하므로 빈번하다 잘못 판단 3
  • 4.
    핵심 아이디어 (KeyIdeas)  특정 블록의 빈도를 평가하는 기준 − 블록 -> 페이지의 집합  페이지 단위의 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
  • 7.
    알고리즘 예제 k=2, t=100 Block A Block B Block C k=1 k=2 k=1 k=2 k=1 k=2 0 97 0 0 1 98 1 95 65 1 93 50 2 99 2 90 2 3 100 3 3 96 80 Bt(A,2) = ∞ Bt(B,2) = 100-65 Bt(C,2) = 35 = 35 victim Bt(B,1) = (10 + 5 )/2 Bt(C,1) =(7+4)/2 = 7.5 = 5.5 7
  • 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