学习FTL-day2_20240815
1.FTL(Flash Translation Layer)固态中的关键软件层
1.1FTL做什么
- 保证逻辑空间数据的正确性
- 保证物理空间数据的稳定性

1.2为什么需要FTL
- Nand特性一:独特的擦写方式
- 最小擦除(Erase)单元: Block
- 最小写入(Program)单元:Page
- Block只有被擦除后,才可以被写入,且被再次擦除之前,每个Page只能写一次,不能重复写入
- 同一Block内,要从Page0开始按顺序依次写入,不能跳Page,也不能乱序写入
- Nand特性二:数据的稳定性
- Data Retention: 数据保持时间。数据被写入后,随着时间流逝,存储电荷会慢慢流失,存储数据的错误比特数会越来越高
- 擦除次数:每个Block的擦除次数(PE Cycle)是有限的,超过一定擦除次数后,数据将不能被稳定保存
- Read Disturb:读某个page时,会对周围page内存储的数据产生影响,且这种影响会随着Read次数增加而累积
因为NAND有着这些特性,所以要才需要FTL来管理

1.3FTL的功能
- 映射表管理:管理逻辑地址到物理地址的映射关系
- 垃圾回收:由于NAND的特性,其中会累积一些无效的数据,写入的数据越多,NADN的垃圾数据就会越多,最终需要清理这些垃圾,释放空白快
- 磨损消除:尽可能使每个块的擦次数更加平均
- 块管理:管理快的分配和回收
- 坏块管理:挑选不稳定的page、不稳定的block,京可能演唱NAND的寿命
- 掉电恢复:掉电时数据可能会丢失或者损坏。为了保证数据不丢保持映射表的一致性,并且保证下次通电时SSD能正常运行
- IO处理:Host的读写和Trim流程

浙公网安备 33010602011771号