固态硬盘trim是什么以及固态硬盘 trim功能

2021-02-05 08:35 833

最近这几年,固态硬盘越来越受到欢迎。因为固态硬盘与传统硬盘相比运行速度要快很多。如果你已经在使用,或者你想买一个固态硬盘来提高你的电脑性能或者您正在使用固态硬盘,那么你应该了解固态硬盘trim功能。什么是固态硬盘trim,为什么它对固态硬盘很重要,如何在Windows中检查它是否开启,以及为什么找回固态硬盘删除数据相对困难?在本文中您会找到这些问题的答案。

固态硬盘trim是什么

TRIM是一个让操作系统准确了解你想移动或删除数据存储位置的命令。从win7开始,微软操作系统添加trim功能,告诉固态硬盘(SSD)哪些数据块不再需要,可以被删除,或者被标记为可重写。这样,固态硬盘就可以只访问保存数据的块。当计算机空闲时让固态驱动器擦除数据来节省时间,而不是在写入过程中使用额外的时间来删除不再有效的数据。

要彻底了解trim,我们首先要了解固态硬盘是怎样工作的,以及固态硬盘如何处理存储在其中的信息。虽然硬盘(HDD)和固态硬盘(SSD)都是存储数据,但它们的工作方式有很大的不同。它们的主要区别之一是它们如何写入和删除数据方式不同。例如,当我们在机械硬盘上删除一个文件时,操作系统将删除文件标记为已删除。当我们再进行写入文件时,文件将存储在任何可用空间上,或者存储被标记已删除的空间上。

固态硬盘是将数据存储在集成芯片中,这些芯片被组织成页,几个页组成一个块。数据写入页中完成的,但删除文件是在块级完成的。固态硬盘由三个主要零件组成,包含Controller控制芯片、DRAM以及NAND flash闪存。控制芯片是NAND flash与电脑的主要沟通桥梁;NAND flash则是由多个区块的非易失性内存颗粒所构成,也是数据主要储存的地方。

下图显示固态硬盘NAND芯片的布局--一个物理NAND页是属于同一个块的NAND闪存单元的一组。一个NAND块是由几个页组成的。几个NAND块构成一个平面。最后,平面形成一个芯片。每个存储芯片包含一个或多个芯片。

固态硬盘组成图

 

一. 了解什么叫垃圾收集(Garbage Collection)

程序在内存空间中用不到的部分叫做垃圾。机械硬盘允许数据覆盖写入,但到固态硬盘上问题就来了,固态硬盘闪存不允许覆盖,只能先擦除再写入,要得到‘空闲’的闪存空间来进行写入,固态硬盘就必须进行垃圾回收操作。垃圾收集主要做的就是两件事:

  • 找到内存空间里面的垃圾;
  • 回收垃圾,让程序可以再次使用这部分内存空间。

垃圾收集是NAND闪存控制器的一项重要功能。其目的是使闪存设备有足够的空闲区块,这样,每当必须写入数据时,设备就不必等待区块被擦除,从而使新数据可用。

下面的步骤显示了垃圾收集是如何进行的。

步骤一.  块1中的A、B和C页已经有数据存储进来了(上图所示)。该块中的其余页是空闲的,每当有新的数据需要写入或存储时,都可以使用。

步骤二.  当新数据E、F、G写入后(上图所示),第 1 区块中的 A、B 和 C 页中的数据已修改并替换为 A+、B+ 和 C+。原有A、B 和 C 页无法写入新的数据。

步骤三. 进行垃圾收集(上图所示)。E 页、F 页和 G 页和 A+、B+ 和 C+ 中的有效数据被复制到备用块 2中。块 1 中的所有页面都已擦除,并且该块标注为可用。

在这个例子中,从步骤一开始,固态硬盘通过前三个区块(A'-C')写入新值到空页。从步骤二开始,A-C块现在被标记为过期,这意味着它们包含的信息已被固态硬盘标记为删除。在空闲期间也就是步骤三,固态硬盘将把新的页面移到一个新的区块上,擦除旧的区块,并把它标记为空闲空间。这意味着下次SSD需要执行写操作时,它可以直接写到现在的空块X上,而不是执行程序/擦除循环。接着我们讨论下一个概念是Trim。

二. 固态硬盘trim是干什么的,固态硬盘 trim功能

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

机械硬盘存储和删除:我们在机械硬盘上删除一个文件时,该文件并没有被立即删除。相反,操作系统告诉机械硬盘,在下一次需要执行写入新数据时,可以覆盖并存储在删除文件所在的区域。对于传统的HDD,操作系统不需要注意数据被写入的位置,或者块或页的相对状态是什么。

固态硬盘存储和删除:固态硬盘的TRIM指令干了什么呢?操作系统一旦删除某文件,固态硬盘收到TRIM指令后,就会立刻将这些数据进行垃圾回收,并在空闲时将对应的闪存进行擦除,这样数据就很难被恢复出来了。这也是为什么您发现,固态硬盘上删除的数据不能通过软件恢复的原因。这并非软件不起作用,而是固态硬盘的TRIM指令造成的。

三. 固态硬盘数据丢失如何恢复

从上面介绍我们应该对固态硬盘删除数据的方式有一定了解,当我们发现固态硬盘数据丢失后,应立即取下固态硬盘,防止系统在休闲状态中删除丢失文件在页中的数据信息。待使用数据恢复软件恢复丢失文件时,再安装固态硬盘(固态硬盘最好使用移动硬盘盒连接电脑,待系统启动完成后连接)。

三. 补充

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

2.  win7和win8系统对TRIM功能支持有所不同。
win7检测到支持Trim的固态硬盘时会自动开启该功能,并会在系统待机或者轻负载时自动向固态硬盘发送运行TRIM的指令,其缺点是不支持手动操作。想比之下win8更人性化,把trim功能和日常的磁盘整理程序整合在一起,成为一个可以手动操作的系统组件。

SSD, 修剪