FTL --Trim、磨损均衡、掉电恢复、坏块管理

一、Trim

1、Trim解决的问题

  对一个文件File A来说,用户看到的是文件,操作系统把文件划分为若干个逻辑块,然后写入SSD的闪存空间。当用户删除掉文件File A时,其实它只是切断用户与操作系统的联系,即用户访问不到这些地址空间;而在SSD内部,逻辑页与物理页的映射关系还在,文件数据在闪存当中也是有效的

  在没有Trim之前,SSD无法知道那些被删除的数据页是否无效,必须等到系统要求在相同的地方(用户空间、逻辑空间)写入数据时才知道那些数据是无效的,进而放心删除。由于SSD不知道这些删除的数据已经无效,在做垃圾回收的时候,仍把它当作有效数据进行数据的搬移,这不仅影响到GC的性能,还影响到SSD的寿命(写放大增大)。

2、什么是Trim

  Trim是一个新增的ATA命令(Data Set Management),专为SSD而生。当用户删除一个文件时,操作系统(对Windows来说,它自Windows 7开始支持Trim)会发Trim命令给SSD,告诉SSD该文件对应的数据无效了。一旦SSD知道哪些数据无效之后,在做垃圾回收的时候就可以把这些删除掉的数据抛弃掉,不做无谓的数据搬移。这样不仅增强了SSD的性能,还延长了SSD寿命。

3、Trim命令格式

Trim命令包含两个部分,命令段 和 数据段。

命令段就是Data Set Management 的命令,且option是Trim.

数据段则包含了需要废弃掉的LBA的范围, LBA范围 = 起始地址 + 长度。

Sata协议中,每个范围占8个字节

你可能感兴趣的:(存储,嵌入式硬件)