/ SSD

固态硬盘的 TRIM

TRIM 是什么?

TRIM 是 ATA 数据集管理命令的一个属性。

此命令使操作系统能将可以内部抹除的数据块(如删除文件等)通知固态硬盘。此函数可提高兼容性,耐用性和性能。

TRIM 的作用 ?

原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。

这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。

而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。

如何使用 TRIM ?

Microsoft Windows 7 和 Windows Server 2008 默认启用了 TRIM 命令。

在管理员权限下,进入命令提示符界面,输入

  fsutil behavior QUERY DisableDeleteNotify 

提示 DisableDeleteNotify = 0 即Trim指令已启用
提示 DisableDeleteNotify = 1 即为Trim指令未启用

并不是操作系统提供Trim指令支持,所有SSD都能享受到Trim技术所带来的好处,这还需要固态硬盘的固件支持才能实现。

现在主要的固态硬盘主控芯片厂商已经提供了支持TRIM的固件,不过也有厂商开发出不依赖操作系统的垃圾回收技术,通过回收不再使用的闪存区块加入负载平衡算法,防止固态硬盘在长期使用后速度下滑,并延长闪存使用寿命,过程完全在固态硬盘内部完成。