每日资讯:固态存储设备要擦除哪些数据的SATAm指令?详情介绍

发布时间:   来源:CSDN  


(资料图片仅供参考)

TRIM指令是微软联合各大SSD厂商所开发的一项技术,属于ATA8-ACS规范的技术指令。

TRIM是告诉NAND闪存固态存储设备要擦除哪些数据的SATA接口指令。当相关页面的数据可以被覆盖时,操作系统会发给SSD一个TRIM指令。SSD控制器等到主机开始删除和再次写入操作的时候,执行安全擦除操作。因为在写入操作过程中不用花时间去擦除原本的数据,写入速度要快得多。

Trim指令也叫disable delete notify(禁用删除通知),当我们在操作系统中删除一个文件时,系统并没有真正删掉这个文件的数据,它只是把这些数据占用的地址标记为‘空’,即可以覆盖使用。但这只是在文件系统层面的操作,硬盘本身并不知道那些地址的数据已经‘无效’,除非系统通知它要在这些地址写入新的数据。

在HDD上本无任何问题,因为HDD允许覆盖写入,但到SSD上问题就来了,我们都已知道闪存不允许覆盖,只能先擦除再写入,要得到‘空闲’的闪存空间来进行写入,SSD就必须进行GC(垃圾回收)操作。在没有Trim的情况下,SSD无法事先知道那些被‘删除’的数据页已经是‘无效’的,必须到系统要求在相同的地方写入数据时才知道那些数据可以被擦除,这样就无法在最适当的时机做出最好的优化,既影响GC的效率(间接影响性能),又影响SSD的寿命。

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

注意:如果SSD组RAID0后,将失去Trim功能。

怎样让Trim+SSD发挥出最大性能如果你只是购买一块支持Trim的SSD,再为它装上Windows7,也没有发挥出最大性能。原因很简单,因为新磁盘为空,Windows的Volume Bitmap根本没被建立。Windows只能按照对待机械硬盘的方式处理SSD。但有趣的事情发生了,你会发现,新的SSD得出的测试结果虽然不尽如人意,但在使用一段时间之后,速度竟然不降反升!下面就是我的Vertex 60G*2 Raid0在使用前后的速度对比:刚买来,装好系统之后的速度使用一段时间后的速度读取速度增加很明显,但写入速度却有所降低。原因?通过一段时间的使用后,一部分区块经过了读写操作,Volume Bitmap中建立了相关快照,速度自然快很多,而写入速度变慢是由于硬盘长期处于工作状态,碎片整理功能没有运行。在注销并闲置一段时间后,速度继续提升。

人为向固态硬盘中写入大量数据,将SSD全部填满,然后删除所有填入的数据以及所有不需要的文件(比如临时文件等),当然,这个操作必须是在Windows7下面进行,并且Trim已经启用,在删除数据之后,再重启系统,闲置一段时间。这样一来,Windows7会立即建立整个磁盘的Volume Bitmap快照,SSD固件也自动整理碎片,全面提升速度。 

相关文章Related

返回栏目>>