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的性能和可靠性