SSD-FTL簡介
參考資料《深入淺出SSD》
FTL
1.全稱
Flash Translation Layer,閃存轉換層
2.作用
完成Host邏輯地址空間到閃存(Flash)物理地址空間的映射;
FTL算法的優劣,決定了SSD的性能,可靠性,耐用性等,它是SSD固件的核心。
說明:
1)SSD會把每一筆用戶邏輯數據寫入閃存地址空間,便記錄下該邏輯地址到物理地址的映射關系
2)當host讀取數據時,SSD會根據這個映射,從閃存讀取這筆數據,然后返回給用戶
3.FTL的種類
1)基於主機(Host Based)
FTL在主機端實現,用自己計算機的CPU和內存資源,如圖

2)基於設備(Device Based,主流)
FTL在設備端實現,用的是SSD上的控制器和RAM資源,如圖

閃存的重要特性
1.閃存塊需要先擦除才能寫入,不能覆蓋寫
2.閃存都是有一定壽命的,每擦除一次閃存塊,都會對其造成磨損,一般用PE(Program/EraseCount)數來衡量
3.每個閃存塊的讀是有限的,讀的太多,上面的數據就會出錯,造成讀干擾問題
4.閃存的數據保持問題,由於電荷的流失,存儲在閃存上的數據是會丟失的
5.閃存天生就有壞塊
6.對MLC和TLC來說,存在Lower Page corruption的問題
說明:在對Upper Page/Extra Page寫入時,如果發生異常掉電,可能會把Lower Page上成功寫入的數據破壞掉,
好的FTL應該盡量避免這種情況
7.MLC和TLC的讀寫速度不如SLC,但它們都可以配成SLC模式來使用,好的FTL應該會利用這個特性來改善SSD的性能和可靠性
