1前言:关于Trim
固态硬盘,Solid State Drive,是近些年来,存储行业发展最快,市场最为火热的前沿产品。
在前面的几期“小Z聊固态”中,小Z分别从固态硬盘的构造、历史以及产品核心器件,行业主要厂商等方面,简单的聊了聊关于固态硬盘产品的一些科普性的知识,并在收集整理相关资料,编撰成文的过程中,小Z自感收获颇多。
在结束了关于基础性科普知识后,小Z也在思考下一步该和大家聊什么。聊产品?有人会说打广告;聊品牌?似乎聊的有点多;聊技术?小Z出身在文科。
想来想去,依旧还是只能从科普性出发,聊一些关于固态硬盘前沿性,技术研究性不强的,又没太多广告性质的东西,于是,便有了从今天开始更新的浅谈SSD专业术语系列。
鉴于小Z不是技术出身,只能通过翻阅大量资料和问询行业从业者的方式,进行专业术语的相关论述,因而有些不严谨的地方,也请轻喷。
今天,我们就先聊聊关于Trim。
2关于几个原理
关于几个原理
Trim一词,并没有正式的中文翻译,它的来源其实是ATA命令,起到的作用是,操作系统发送此指令给主控芯片,以通知它哪些数据占用的地址是'无效'的,仅此而已。
在讲解Trim的重要性前,我们先得了解一些关于固态硬盘文件知识。
当我们在操作系统中删除一个文件时,系统并没有真正删掉这个文件的数据,它只是把这些数据占用的地址标记为'空',即可以覆盖使用。
但这只是在系统层面的操作,硬盘本身并不知道那些地址的数据已经'无效',除非系统通知它要在这些地址写入新的数据。(这也就是为什么文件恢复软件可以通过系统底层数据进行文件恢复)
机械硬盘允许覆盖,固态硬盘却只能擦除再写入
这在机械硬盘时代本无任何问题,因为机械硬盘允许覆盖写入。然而到了固态硬盘时代,由于闪存不允许覆盖,只能先擦除再写入,要得到'空闲'的闪存空间来进行写入,固态硬盘就必须进行垃圾回收操作。
在这里还要简单的提下,固态硬盘文件存储原理。
固态硬盘闪存内,数据存储一般是以page(页)为最小单位存储的(典型的为4KB),而128个page组成了一个block(块),数据可以以 4KB大小的页来读取和写入,但却只能以512KB(128 page)的块大小来删除。当读取数据或者写入到一个没有被使用过的page上时,固态硬盘的速度是很快的,但是覆写数据的话,就比较复杂了,需要许多步骤来完成。
因而,在没有Trim的情况下,固态硬盘无法事先知道那些被'删除'的数据页已经是'无效'的,必须到系统要求在相同的地方写入数据时才知道那些数据可以被擦除,这样就无法在最适当的时机做出最好的优化,不仅拖慢了速度,还由于频繁大量的读写,损耗了固态硬盘的寿命。
3Trim工作原理及提示
Trim工作原理及提示
说了这么多,那么到底Trim又是怎么工作的呢?
当一个文件在支持Trim的系统里被删除后,操作系统会发个命令给固态硬盘主控,让它知道这个数据所在的这个page可以直接被写入,等于把控制权从操作系统变为了主控制器。
固态硬盘一样会复制整个包含删除数据的块到缓存,清空块并写入有效数据的页回去,区别是这样等于把这个延迟时间从覆写数据的那个时间提前到了删除数据的时候,自然就会显得固态硬盘的速度回来了,因为在写入的时候有可用的空块。
Trim工作示意图(图片来源于网络)
最后,Trim只是一个指令,它让操作系统通知主控某个页的数据已经'无效'后,任务就已完成,并没有更多的操作。其余的所有的垃圾文件的清理、回收等工作,都与Trim无关,完全是由主控其它的固件在工作。
至于Trim的意义在于,它能大量减少"有效"页数据的数量,大大提升主控回收垃圾文件,处理垃圾文件的效率。
那么,是不是所有固态硬盘都支持Trim呢?
在固态硬盘发展初期,受限于主控芯片、固件以及操作系统的不完善,部分低端固态硬盘还不太支持,到了如今,Windows7几乎快成为过去的时代了,Trim机制已经成为所有固态硬盘的标配了。
唯一不足的可能就是在部分老的平台上,RAID阵列中的固态硬盘不支持Trim。
至于如何查看系统是否开启了Trim,那就更简单了。在Windows系统中,打开命令指示符,并输入fsutil behavior query disabledeletenotify,如果显示结果为DisableDeleteNotify=0,说明系统已启用Trim,如果为1则说明没有启用。
总结:
Trim机制的存在,使得固态硬盘能够更加智能的进行文件的删除、整理、回收。更加粗暴的解释Trim,就是把要做的事,在不知觉的情况下提前做了,当你真的需要用的时候,让你爽了。
但是,Trim机制仅仅是一条主控命令,并非是Trim加速了固态硬盘的工作效率亦或是Trim延长了使用寿命,而是Trim作为ATA命令,下达旨意,让固态主控中的固件功能根据命令更加科学的进行垃圾文件回收等相关工作。
推荐经销商