学习FTL-day2_20240815

1.FTL(Flash Translation Layer)固态中的关键软件层

1.1FTL做什么

  • 保证逻辑空间数据的正确性
  • 保证物理空间数据的稳定性

C:\Users\xiaoyuhao\Documents\WeChat Files\wxid_ecocdhno0e8r22\FileStorage\Temp\1723790268240.jpg

1.2为什么需要FTL

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

因为NAND有着这些特性,所以要才需要FTL来管理

C:\Users\xiaoyuhao\Documents\WeChat Files\wxid_ecocdhno0e8r22\FileStorage\Temp\1723790295978.jpg

1.3FTL的功能

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