除了保持不掉速,Trim指令对于固态硬盘还有额外妙用
有朋友通过私信向存储极客提问:Trim指令只是把GC垃圾回收要做的擦除提前做了,提高了后续写入的性能,似乎对写入放大率没有帮助,为什么说Trim有利于延长固态硬盘寿命呢?
这个问题很有深度,弄清楚之后有助于大家深入理解固态硬盘的工作原理。小编就单独用一篇文章来系统讲解吧。
1987年,东芝发明了NAND闪存,它的容量大、速度快,断电不丢数据,诸多优点使得它不断发展至今,成为半导体存储的主力军。不过NAND闪存也有一些使用限制,譬如写入之前必须先经过擦除。这是FTL闪存映射转换层以及Trim指令问世的根源。
闪存读写和擦除单位不同:
闪存的最小读取和写入单位皆为Page,在东芝64层堆叠BiCS3闪存当中,一个Page页的大小为16KB。闪存在写入新内容之前必须先经过擦除,而擦除的最小单位是Block,一个Block块在BiCS3中的大小为12MB。
闪存这一特性跟儿童磁性画板有些类似,一擦就是一大块,无法针对单个点去做擦除。
先擦后写带来的问题:
电脑上的Windows操作系统在删除硬盘上文件时,操作系统仅仅是在文件分配表中做一个标记,并不会对存放文件的位置做实际的抹除。这种做法对机械硬盘而言是很高效的。只要操作系统心中有数(文件分配表),随时可以在文件删除留下的垃圾位置上覆盖写入新的位置。
固态硬盘继承了机械盘的使用方式,删除文件产生的"垃圾"会一直在闪存中存放着,直到操作系统下一次要求在相同位置覆盖写入新数据,主控这才恍然大悟、措手不及(闪存无法不经擦除直接写入,只能先写到别处,通过FTL闪存映射表进行标记)。
当Block块中的垃圾多到一定程度之后,固态硬盘不得不将整个Block块中的全部Page页都读取出来、全部写入到新的Block块当中,然后擦除之前的Block。这个先读取、再写入、后擦除的过程就是固态硬盘中费时费力的"垃圾回收"工作。
因为删除文件时操作系统只在分区表上做改动,固态硬盘分不清哪些是无效页哪些是存有数据的有效页,将无效页也做了重复搬运:这样就做了无用功,不仅影响性能更是加速了闪存的磨损。
Trim带来了什么不同?
Trim在Windows中的大名是Delete Notify删除通知。通过Trim指令,操作系统可以在标记文件分配表的同时,顺带通知到固态硬盘:这些位置的数据已经没用了,你得空的话可以做下打扫了。
有了Trim指令之后,固态硬盘对闪存的实际占用情况了然于胸,在做垃圾回收时可以只读取其中的有效Page页,将它们写入到新的Block,然后就可以对旧block做擦除。简单来说就是Trim让固态硬盘垃圾回收的效率更高,减少了不必要的数据搬运重写,降低了写入放大率,提升了固态硬盘的使用寿命。
现在Trim指令早已成为固态硬盘的标配功能。不过Trim只是让固态硬盘主控了解"垃圾"的位置,具体何时做垃圾回收工作还需要更深层的算法去权衡性能和耐久度。在这方面,原厂固态硬盘往往比缺少研发能力的贴牌产品做的更好。
一文弄懂为何固态硬盘不易恢复数据 这两点很重要
自从固态硬盘迈入TLC时代,500GB已成为笔记本电脑标配,TB级SSD也跌进千元以内,实在是提升电脑性能的一大利器。
挑好SSD,它没那么脆弱
奇客之前回答网友提问时,多次推荐SSD作为重要数据存储设备,遭到一些朋友的质疑,说SSD数据丢失难以恢复。但其实我想说的是,只要是大牌产品,主控颗粒质量有保障,经过这几年的优化发展,基本不会毫无征兆突然死亡。再者说,固态硬盘恢复数据并非不可能,只是相对机械硬盘来得困难,因为二者工作机制截然不同 。
和机械硬盘不同,固态硬盘放弃了线性写入,而采用并行写入,也就是数据被分解成小块,同时写入不同的Nand芯片中。但是一些最便宜同时最慢的SSD,只采用一个Nand芯片怎么办?存储颗粒上每个物理块都动态分配一个逻辑地址,以帮助SSD控制器进行均衡磨损。因此,读取Nand芯片的内容,并返回一个数据混合成块的拼图,以一种看似随机的方式混合。
SSD必须转换Nand地址以便映射坏块,并提供均衡磨损,而Nand颗粒都有写入寿命,即PE全盘擦写次数。大多数TLC SSD都模拟SLC缓存算法,也就是划出专门SLC缓存区,以更低的工作电流改写数据,获得更快的速度,同时减少Nand物理磨损。
3种Nand颗粒的体质差异
看懂SSD Trim工作原理
通常磁盘操作的删除不是马上删除,而是标记为待删除的无效数据(你可以做个试验:拷贝一个大文件到U盘,中途取消然后马上再拷贝一次,前面写入的数据又从无效变成有效,所以速度非常之快,之后恢复真实写入速度)。
机械硬盘工作原理只有读和写,因为数据可以原有磁道上直接覆盖,不需要经过清除这个步骤,这是机械硬盘磁道记录信息的特点。但是SSD不行,SSD改写数据需要执行读、擦、写三个动作,任何一个Nand芯片如果里面有数据,必须把有数据的区块擦除清零才能写入。
对于SSD而言,TRIM指令最大作用是清空待删除的无效数据 ,在SSD执行读、擦、写步骤时,预先把擦除的步骤先做了,这样才能发挥出SSD的性能。奇客之前说过,购买SSD移动硬盘盒和易驱线,要看主控是否支持Trim指令。
一些SSD用几年就掉速,一个原因就是待删除的无效数据太多,每次写入时主控都要先做清空处理,所以性能受到了限制。奇客以前就碰到一块金士顿V300,没有4K对齐速度掉的厉害。
SSD读、擦、写三步曲,就像清理鞋柜,丢掉不要的旧鞋才能装新鞋
因为有些SSD主控算法没那么聪明,很多时候并不会主动清理,通常是系统空闲下来才执行操作。 而很多人用电脑基本不会空闲下来,系统就没时间让SSD休息一下。开启Trim的好处就是随时清空待删除的无效数据,这需要具备两点:Win7以上操作系统,固态硬盘4K对齐,Trim才能生效。
Trim开关命令行:
关闭:sudo trimforce disable
启用:sudo trimforce enable
如果想手动运行Trim,运行Powershell命令行:
Optimize-Volume -DriveLetter G -ReTrim -Verbose
其中G是指定盘符,要在磁盘空间时操作
你知道了Trim的功劳,自然明白如果没有它,固态硬盘删除文件后,一段时间内没做清空处理,以前的文件是可能恢复过来的,这种情况也适用于XP老系统。
SSD数据恢复到底难不难
上面说固态硬盘正常时恢复删除的文件,那么有人说SSD一旦损坏数据就全报销了,是这样吗?奇客要说的是:分情况。
SSD主控写死情况比较少见,而只要Nand颗粒不损坏就有可能恢复数据。如果没有SSD主控的帮助,想恢复固态硬盘上的文件非常难,而且算法是核心技术,厂家不开源。
因为数据恢复要重建转换表,以确定哪些Nand芯片和保存数据的具体地址。不同的主控算法不同,转换表格式也不同,Nand芯片越多重建就越困难,所以SSD数据恢复比较复杂。
数码之家论坛有位达人用专业工具成功恢复了一块64GB CF卡上的视频文件18.4GB,这块存储卡采用了美光SLC颗粒,主控是慧荣SM2246XT,走的是SATA协议,等于小型固态硬盘。
这张CF卡标称速度达510MB/s
这个工具是Flash Extractor——一款比PC3000更牛的数据恢复软件,它可以恢复任意损坏U盘和固态硬盘里的数据。注意是硬件上的损坏,不过软件还要配合对应设备才行,就是下图这个板子:
芯片编程器通过转接头支持各种颗粒
看到镁光颗粒吗?没错,就是把Nand颗粒拆下来,用工具读取底层数据,对照Flash转换表Dump下每个颗粒,通过复杂的算法重组得到正确数据,再用WinHex打开数据镜像,转换为硬盘MBR模式,最终根据文件类型成功恢复数据。
也就是说,不管是BGA还是TSOP封装的Nand颗粒,还是手机采用的eMMC和UFS闪存,理论上通过类似方法都可以恢复数据。但是随着Nand颗粒堆叠层数增多,TLC数据恢复难度会比SLC/MLC更高。所以还是要提醒大家,定期关注硬盘SMART状态,定期备份重要数据,有备无患才是王道。
最后是奇客推荐SSD——
#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } Crucial 镁光 英睿达2T/1T/500G/250G SATA3固态硬盘SSD MX500系列 CT1000MX500 SATA3接口 1TB ¥999 购买 #pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 海康威视C2000固态硬盘SSD M.2 NVME 2280接口含pro笔记本台式机 PCIE 256G【C2000PRO紫光版】 ¥399 购买相关问答
清除emmc是什么意思,可以清除锁屏密码吗?“清除emmc”是格式化手机内存的意思,之前设置的开机密码之类的东东,通讯录,安装在手机上的软件之类的都会没有。emmc是指手机内部储存,即手机的EMMC闪存...
手机清除eMMC data什么意思?“清除emmc”是格式化手机内存的意思,之前设置的开机密码之类的东东,通讯录,安装在手机上的软件之类的都会没有。emmc是指手机内部储存,即手机的EMMC闪...“...
类固醇类药有哪些_千问健康一般做完手术后打的消炎药属于类固醇类药物,类固醇类药物是一种药还是几种药?类固醇类药有哪些
3ds a9肿么删除cia补丁-ZOL问答是可以通过程序互相转换的你开机进D9恢复nand就可以了。
山寨苹果6清除emmc是什么意思?“清除emmc”是格式化手机内存的意思,之前设置的开机密码之类的东东,通讯录,安装在手机上的软件之类的都会没有。emmc是指手机内部储存,即手机的EMMC闪存...
日本为什么把韩国从可享受贸易便利的“白清单”中清除?这背后有什么目的?感谢“悟空小秘书”的邀请!日本把韩国从可享受贸易便利的“白名单”中清除,这是日本对出口韩国的产品作出进一步的限制,进一步打压韩国的经济支柱:半导体行...1...
苹果手机删除的数据保存在了哪里?会有信息泄露的风险吗?果曾经通过iCloud备份了手机中的数据,也可以通过iCloud来恢复备份过的数据,iCloud中的数据是保存在云端的,也就是在苹果的服务器当中。如果曾经用iTunes备...如...
闪存是什么?闪存具有高速读写、低功耗和较长的寿命等优点,广泛应用于各种电子设备中,如手机、平板电脑、相机和固态硬盘等。闪存的主要类型包括NAND闪存和NOR闪存,其中NA...
NAND 与ROM有什么不同-ZOL问答我的PPC有8G的NAND但是ROM只有128MB,我想问在WM系统中NADN和ROM的使用功能一样吗,或者说NADN能够当作是ROM使用吗?在待机状态系系统会像SDMMC那样切断储存器电...
m.2固态硬盘系统数据恢复工具?固态硬盘(SolidStateDrives,简称SSD),是一种主要以NAND电子闪存作为储存器制成的硬盘。固态硬盘由控制单元和存储单元组成,在接口的规范和定义、使用方法...