2009年4月29日 星期三

FTL介紹

FTL(flash translation layer)是一個轉換的介面,
使得flash 能夠被當作一般的儲存裝置使用(因為他不能直接更新檔案內容)

主要的作用有:
  • 位址轉換,把LBA(logical block address)轉換成flash上的位址
  • garbage collection(GC),由於flash的out-of-place update的關係,會造成有一些page被invalid掉,所以需要回收這些page
(FTL的效能受GC影響最明顯)






上面的page 和block大小只是個範例,實際上有的會不一樣(例如page為4K之類)



FTL位址轉換對應基本上最簡單的可以分成兩種:
  • page level - 對應比較細,但占用較大的轉換表(非常之大......)
  • block level - 對應比較粗躁,在GC的overhead很大(因為只要修改一個page就要重寫整個block),但是節省轉換表
基本上page level是沒辦法用的,block level有缺點,所以有一些替代方案,
像是已知的NFTL或是Log buffer-based FTL schemes之類

沒有留言: