Digital Recipe

DFTL 본문

컴퓨터 공학/(분야별) 스토리지(SSD)

DFTL

노리터 2011. 4. 22. 17:33
분류 :
Flash Translation Layer (FTL)


논문제목 : 
DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings

발표지 :
ASPLOS '09



1. FTL에서 Page-Level Mapping과 Block-Level Mapping의 단점

Page-Mapping 방식 : SRAM 내의 Mapping Table 크기가 커진다.
Block-Mapping 방식 : Garbage Collection의 Overhead가 커진다.





2. DFTL의 기본 Idea

자주쓰이는 Mapping 정보만 SRAM에 적재하자.
SRAM에 적재되지 않은 Mapping정보를 NAND에서 찾기 위한 최소한의 정보는 SRAM에 적재해야한다.




3. DFTL에서 사용하는 3가지 공간

1. Global Mapping Table
모든 Logical Address를 Physical Address로 Mapping 하기 위한 정보를 가지고 있는 NAND의 일부분

2. Cached Mapping Table ( a.k.a CMT )
자주 쓰이는 Mapping 정보만 가지고 있는 SRAM에 적재되어 있는 공간

3. Global Translation Directory ( a.k.a GTD )
CMT에 없는 Mapping 정보를 찾아갈 수 있도록 도와주는 SRAM에 적재된 공간





4. 하나의 LPN을 불러 올 때의 과정(예제)

 


(1) 요청받은 Logical Address를 Physical Address로 변환하기 위해 CMT의 Mapping Table을 찾아본다.


요청받은 DLPN=1280이 CMT에서 miss 났기때문에 CMT에서 하나의 Entry를 NAND로 내쫓고 새로운 Entry를 적재해야한다. 따라서

(2) CMT에서 하나의 Victim Entry ( 1, 260 )을 선택하고 Victim Entry Mapping 정보를 가지고 있는 Nand Flash 내의 Page 번호를 확인한다.

(3) 해당 Page의 모든 Mapping 정보를 읽어온다.

(4) 읽어온 Mapping 정보는 옛날정보이기 때문에 ( 1, 130 )을 Cache에서 쫓겨난 ( 1, 260 )으로 갱신하고 이 새로운 Mapping 정보를 새로운 Page에 저장한다.

(5)(6) Mapping 정보가 저장되어 있는 Page 번호가 바뀌었기 때문에 GTD를 갱신한다.

(7)(8)(9) 요청받은 (LBN 1280)이 Cache에서 Miss 났기 때문에 GTD를 통해 Nand Flash 내 Page에 저장되어 있는 Mapping 정보를 검색하여 PPN 정보를 획득한다.

(10) 찾은 PPN정보를 토대로 Cache에 새로운 Entry를 작성한다. (ex. LPN 1280 -> PPN 660 )

(11) 실제 PPN에 저장되어 있는 Data를 읽어온다.



간략하게 다시 정리하여


1. Cache에서 하나의 Entry가 쫓겨나면 Page 내 Mapping 정보를 찾아 갱신하고 새로운 Page에 저장한 후 GTD를 갱신함으로서 하나의 작업이 완료된다.

2. Cache에 빈 자리가 나면 실제 요청 된 LPN의 Mapping 정보를 찾아 Cache에 저장하고 실제 데이터를 읽어온다.

로 이야기 할 수 있을 것이다.


2011. 04. 22
Posted By HoSeok Seo

Comments