A. 固态硬盘trim原理
通常磁盘操作的删除不是马上删除,而是标记为待删除的无效数据。机械硬盘工作原理只有读和写,因为数据是可以直接在原有的磁道上进行覆盖,不需要经过清除这个步骤,这是机械硬盘磁道记录信息的特点。但是SSD不行,SSD是读、擦、写三个步骤,任何一个记录模块如果里面有数据,必须把有数据的区域擦除清零才能写入。
因此,对于SSD而言TRIM的最大作用是清空待删除的无效数据,在SSD执行读、擦、写步骤的时候,预先把擦除的步骤先做了,这样才能发挥出SSD的性能,通常SSD掉速很大一部分原因就是待删除的无效数据太多,每次写入的时候主控都要先做清空处理,所以性能受到了限制。
用个例子来说明,假设有一个100G全部存满数据的SSD,然后删除掉50G的数据,那么SSD删除数据是先标记这50G为待删除无效数据,不再进行访问,然而这些数据依然占据你的磁盘空间,系统则会显示你有50G的空间,当你需要写入新数据的时候,就会把那50G的空间执行擦除然后再执行写入,主控同时进行擦除和写入,如果数据量很大的话掉速就会出现。主控进行擦除也是按照性能原则来进行的,一般都是要写入多少数据就擦除多少待删除无效数据,这样才能保持最大的性能。TRIM里关于清空无效数据的指令,一般来说每个主控都会有,理论上不需要你操作主控会自己判断。但这只是理论,实际上主控没有那么聪明,很多时候并不会主动清理,它需要一个逻辑判断,通常是系统空闲的时候才会操作这个步骤,可是一般人上班的时候基本上电脑都不会空闲,就容易发生工作时间8小时内SSD都不会执行清理程序,只会在空白空间不够的时候再根据需要清理。
打个比方,家的柜子装东西,柜子里放满了东西,这个柜子能不能再放新的物件取决于要不要丢掉柜子里的一些东西。如果暂时没有新物件放进去又不想现在丢掉箱子里的东西,那么这个箱子在认知中是还可以放东西的(只是需要先丢一些东西,这就是删掉了50G数据,这些数据还在,但是系统显示有50G的空间,只是做了标记可以放东西不,不代表目前有空间),但放东西之前必须要先拿部分东西腾空间的流程,这个流程是现在做(TRIM开启,及时清空无效数据),还是需要放新东西的时候再说(由主控来控制,有需要的时候再清理,例如空白空间用完了)。开启TRIM指令的好处是,随时清空待删除无效数据,而不是等到要写新数据时的才开始清空,加大主控负担。
B. Win10系统 关于固态硬盘trim是否开启的问题
当然是打开的,如果返回值是0,则代表TRIM处于开启状态;如果返回值是1,则代表TRIM处于关闭状态。
C. 购买固态硬盘时如何知道硬盘是否支持TRIM命令
1,市面上的在售型号基本上都支持trim的,2,可以用硬盘软件如hdtune pro,crystal disk info等查看硬盘信息,如果支持,在支持的特性里可以看到trim是勾选的。
D. 固态硬盘trim原理 固态硬盘为什么需要TRIM
在机械硬盘上写入数据时,
Windows会通知硬盘先将以前的擦除,
再将新的数据写入到磁盘中。
而在删除数据时,Windows只会在此处做个标记,
说明这里应该是没有东西了,
等到真正要写入数据时再来真正删除,
并且做标记这个动作会保留在磁盘缓存中,
等到磁盘空闲时再执行。
这样一来,磁盘需要更多的时间来执行以上操作,
速度当然会慢下来。
而当Windows识别到SSD并确认SSD支持Trim后,
在删除数据时,会不向硬盘通知删除指令,
只使用Volume Bitmap来记住这里的数据已经删除。
Volume Bitmap只是一个磁盘快照,
其建立速度比直接读写硬盘去标记删除区域要快得多。
这一步就已经省下一大笔时间了。
然后再是写入数据的时候,
由于NAND闪存保存数据是纯粹的数字形式,
因此可以直接根据Volume Bitmap的情况,
向快照中已删除的区块写入新的数据,
而不用花时间去擦除原本的数据。
E. 固态硬盘trim原理是什么
在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。
F. 固态硬盘开启trim功能是什么意思
就是打开TRIM功能的意思,固态硬盘跟机械硬盘不同,机械硬盘只有读写两种工作状态,可以直接在老数据上覆盖,所以机械硬盘删除文件,只是标记为无效待删除文件,并没有真正删除,下次要写入数据的时候直接在这些标记的磁道上覆盖。
而SSD工作原理不一样,分为读、擦、写三个步骤,有数据的区域必须要先擦除清零,才能写入新的数据。
所以,对于所有的硬盘来说,不管是机械硬盘还是固态硬盘,删除文件的本质并不是真正意义上的删除,而是把这些文件标记为待删除的无效文件,等到需要再这些区域写入新数据的时候,再执行删除(机械覆盖,固态擦除+写入)。
TRIM本质上,可以让固态硬盘清空这些待删除的无效文件,把空间还原为真正意义上的空白空间。避免了固态硬盘的主控在空白空间不足的时候,再来擦除这些文件,那很容易导致主控同时执行擦+写的工作,负荷过大因而掉速。而你删除的数据越多,就有越多的待删除无效文件产生,这些文件会一直存在,要么等待固态的主控根据实际使用情况来执行删除,或者你利用TRIM提前进行清理。
不管任何一款SSD,至少现在的技术还没解决主控智能化的问题,也就意味着TRIM依旧是必须的东西,假如不开启TRIM,除非你硬盘足够大,有足够的空白空间,如果你是128这种小固态的话,很快性能就会急剧下降,必须定期执行TRIM清理。
G. 固态硬盘trim技术有什么用途
而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。
H. SSD术语常识:什么是TRIM指令
Trim是什么?
为了解决硬盘降速的问题,微软联合各大SSD厂商开发了一个新技术Trim。Trim指令也叫disabledeletenotify(禁用删除通知),属于ata8-acs2规范的技术指令。使用SSD时必须确保开启系统中Trim指令。
系统对支持Trim指令的SSD启动Trim命令后,这时在对SSD进行数据删除的操作,我们知道NTFS文件系统是不向SSD发送删除指令的,SSD发出新的Trim操作指令,告诉它相关页面可以安全擦除,得到这一指示后,就不会急于执行擦除操作,而是等到再次有写入操作的时候再执行,因为这时相关区域已经可以重新使用了,就不用花时间去擦除原本的数据。其速度比直接读写硬盘去标记删除区域要快得多,既提升了读写效率又大大减轻了固态硬盘的损耗。
Trim有什么用处?
如果SSD支持Trim指令,那么SSD就可以长期使用不掉速,否则SSD会随着使用时间越长速度就越慢。
如何查看电脑里是否已开启Trim?
点击开始菜单,在附件---命令提示符上右键单击,选择以管理员权限运行并输入“”
如果返回值是0,则代表您的TRIM处于开启状态
如果返回值是1,则代表您的TRIM处于关闭状态
打开trim和关闭trim的方法
打开:命令行模式下:
若想关闭该功能,只需执行:
I. 为什么固态硬盘需要TRIM
硬盘是电脑上不可或缺的存储设备,我们知道传统的机械硬盘里面有一组高速旋转的盘片,由于盘片的转速存在物理瓶颈,因此要进一步提升速度已经非常困难,而固态硬盘(Solid-State Drive; SSD)的出现则突破了传统硬盘的瓶颈,它依靠闪存芯片来存储数据,工作稳定、无噪音、耗电少,随着成本的下降,大有取代传统硬盘的势头,比如现在苹果的Macbook笔记本已经全面标配SSD,微软的Surface系列电脑也同样标配SSD。网上有很多文章说,SSD和传统硬盘不同,它不需要碎片整理,但是需要操作系统支持TRIM,否则用一段时间之后SSD的性能就会下降,而且还会影响寿命。那么TRIM到底是什么东西,为什么SSD需要TRIM而传统硬盘却不需要呢?
磁盘、数据和文件系统
要回答这个问题,我们得先了解一下我们的数据是如何存储的。我们知道,存储设备(无论是SSD还是传统硬盘)只负责最底层的物理存储,并不知道所存储的数据到底有什么意义,反正操作系统让我读或写什么数据我照办就可以了,就好像一个仓库里面有好多库位,存储设备只负责把东西放到指定的库位,或者把东西从指定的库位拿出来,至于这个东西是属于哪张订单的,是要发给谁的,存储设备并不关心。但是我们在电脑上看到的可不是毫无组织的数据,而是一些有组织的结构,例如分区、目录和文件,把数据组织起来并进行管理的工作是由操作系统负责的,而操作系统组织和管理这些数据的规范,叫做“文件系统”。文件系统就像一张仓库的收发货管理表,它负责管理这些库位的逻辑意义,比如说15、28、55这三个库位的东西是属于同一张订单的,订货人是张三,这三个库位在物理上并不连续,但通过管理表我们就能够把它们关联起来。不同的操作系统所采用的文件系统有所差异,例如较古老的FAT16/32、Windows的NTFS、OS X的HFS+、Linux的ext(ext2/3/4)等等。总结一下,我们需要保存的文件首先会交给操作系统,操作系统根据文件系统所规定的格式将这些数据组织起来,然后交给存储设备进行保存。
闪存的困扰:写入放大
现在我们所使用的大部分文件系统,都是从磁盘存储(软盘、硬盘)时代就开始存在的,因此它们的设计也是以磁盘存储的原理为基础的,但SSD采用的是闪存,由于物理原理存在差异,因此传统的磁盘文件系统用在闪存上,就可能会产生一些问题,其中最大的一个问题就是“写入放大”(write amplification)。举个例子,在大部分磁盘文件系统中,当我们需要删除一个文件时,操作系统只要将该文件所对应的所有数据块在文件系统中标记为“空闲”就可以了,根本不需要实际去清除数据块中存放的数据,因为这样做没有意义,这也就是为什么我们一眨眼的时间就可以删除一个很大的文件。也就是说,尽管用户看起来文件被删除了,但实际上它的数据还留在存储设备中,只不过操作系统认为这些数据已经作废了,下次有新数据的时候直接覆盖掉它们就好了。
现在问题来了,这样的设计必须建立在一个前提下,即对于物理存储设备来说,“写入空白数据块”和“覆盖已有内容的数据块”所需要的操作是完全相同的。上述前提对于磁盘来说是完全成立的,因为磁盘的工作方式跟磁带差不多,数据的记录是根据介质上某个记录单元的磁化方向来完成的。也就是说,在写入数据时,磁头只要将指定的记录单元(扇区)磁化为所需的状态即可,完全不必关心这个单元原本是怎样的状态。然而,上述前提在SSD上却是不能成立的。因为在SSD中,只有空数据块才能直接执行写入操作;而对于非空数据块,需要先执行擦除操作之后才能进行写入。
乍看之下,SSD和传统硬盘的区别仅仅是多了一步擦除操作而已,但实际上并非如此,更要命的还在后头。在SSD中,数据存储的最小单位是页面(page),一个页面的大小一般是4KB,若干个页面又被组合成块(block),一个块的大小一般是256KB。由于硬件方面的限制,SSD可以单独对某个页面进行读/写的操作,但擦除操作却只能对整个块进行,也就是说,一旦擦除就必须一次性擦除整个块。现在问题来了,如果一个页面里面已经有数据了,就无法直接写入新数据,但如果要擦除这个页面,就得把整个块全都擦除,那么这个块里面其他页面中的数据也跟着一起擦掉了,这可怎么办?
现实中,如果操作系统要让SSD改写某个页面的数据,SSD需要执行这样的操作:
1. 将要改写的目标页面所在的整个块的数据读取到缓存
2. 在缓存中修改目标页面的数据
3. 对整个块执行擦除操作
4. 将缓存中的数据重新写入整个块中
这就意味着,如果我要修改1个页面,就必须把整个块都折腾一遍,实际上相当于写入了64个页面的数据——实际搬运和写入的数据量远远超过了需要写入的数据量,这就是“写入放大”。我们可以看出,写入放大不仅影响了SSD的写入性能,而且还增加了SSD中闪存芯片的“磨损”,缩短整个SSD的使用寿命。
TRIM是为了让操作系统和SSD更好地沟通
对于写入放大,SSD表示一个巴掌拍不响,这不都是我的问题,因为一块数据在逻辑上有没有被删除只有操作系统才知道,SSD本身是不知道的——你看,很多问题其实都是因为沟通不畅而产生的。于是,一些SSD在控制芯片中提供了一个TRIM命令,操作系统在删除文件时,顺便向SSD发送TRIM命令告诉它哪些数据块中的数据已经不再使用了,SSD在收到TRIM命令后,通常会在定期的垃圾收集操作中重新组织这些区块,为将来写入数据做好准备——有了TRIM,SSD就能够更好地与操作系统相互配合了。尽管每一款SSD在硬件层面对TRIM命令的执行机制都不尽相同,但无论如何,通过TRIM能够显着改善SSD的性能和寿命。当然,大家可能也已经发现了,有了TRIM之后,删除的文件数据会被SSD自动回收,这意味着以往在传统硬盘上能够使用的一些数据恢复(反删除)软件,在SSD上可能就不再管用了。
既然TRIM如此重要,那么应该如何启用呢?一般来说,只要你所使用的操作系统支持TRIM,就无需任何额外的操作。支持TRIM的操作系统:Windows 7及后续版本、OS X 10.6.8及后续版本、Linux内核版本2.6.33及后续版本。对于Windows XP用户,系统不支持TRIM,可以选择SSD厂商(如Intel)提供的软件来实现定期的垃圾回收,模拟TRIM的效果。
治标还要治本:闪存文件系统
大家可能已经发现了,TRIM实际上只是一个“治标”的办法,其实产生写入放大等问题的根本原因在于现有的文件系统是磁盘存储时代的产物,并不完全适用于闪存,因此如果要“治本”,就必须开发出适合闪存的文件系统,也就是“闪存文件系统”。闪存文件系统能够让操作系统更好地控制和管理SSD等闪存存储设备,除了能够有效避免写入放大之外,闪存文件系统还有一些其他的设计,例如磨损均衡和随机优先等,这些设计都是基于闪存所独有的物理特性而来的,因此可谓是“量体裁衣”。尽管从目前来看,由于兼容性等一些原因,闪存文件系统还没有得到普及,但随着今后闪存存储设备越来越多,用闪存文件系统来代替传统的磁盘文件系统应该说是一个必然的趋势。
J. SSD固态硬盘怎么开启TRIM
win7系统在硬盘工作于ahci模式时,自动开启trim功能,硬盘工作模式设置需要在bios进行,不同品牌bios设置有所区别,以联想ThinkPad e431为例操作步骤如下:
1、开机后按del进入bios设置,选择advanced bios features选项,回车进入;
2、接着使用左右方向键将光标移至“config”菜单,再使用上下方向键将光标移至“serial ata(sata)”按回车键进入设置界面,如下图所示:
3、进入到serial ata(sata)界面后,可以看到sata controller mode option后中括号中为“compatibility”,按回车键进行硬盘模式更改,如下图所示:
4、在弹出的窗口中,将光标移至“ahci”按回车键确认选择,如下图所示:
5、完成以上操作后,按F10键在弹出的确认提示窗口中按Y键确认保存设置,退出并重启电脑即可。