首页 > 编程知识 正文

nvme补丁for win7是什么意思_什么!NVMe不支持TRIM?你不会搞错了吧...

时间:2023-05-04 01:02:34 阅读:258350 作者:4512

是的,你没看错,NVMe的SSD是不支持TRIM的!

这到底是怎么回事?

SSD的发展过程

稍微讲一下SSD的发展过程。

SSD是硬盘在SATA时代时发展起来的。最初的SSD速度慢单价高,顺序读写速度都没有硬盘快。不过半导体的迭代发展非常快,很快就赶上并超过普通硬盘了。

Intel神SSD, SLC的X25-e

只不过,那时候的SSD还是使用SATA接口,因为当时的存储是SATA HDD的天下,你SSD要是不兼容SATA,卖给谁?(当然也有些另类的偏门产品)

SSD和HDD的差异

SSD天生和HDD不一样。本质上有哪些不同呢?

第一个,硬盘需要寻道才能获取所需位置的数据,而SSD可以随意读取任意位置的数据。第二个,硬盘可以随意将某个位置的数据改写成1或0,不用管这个位置以前的数据是什么。但是SSD只能将原先是1的地方写成0,如果想要将原先0的地方改成1,很困难。第三个,SSD读写的单位不是位,而是一个块。如果要改变这个块中的一位,首先要将整个快擦写成1,然后再写入更新的数据。

在这里,第一个是SSD的优点,第二个是SSD的特点。第三个是SSD的致命缺点。

所以,SSD在写入的时候。采取的策略是将需要改写的块,读取出来,进行数据修改,然后写入到一个新的,已经擦除完的地方。最终,SSD内部定期将垃圾块进行回收擦写。

最开始SSD的空间很空的时候,没用的块很多,随便写。随着使用量增加,如果写入时没有可用的块可以使用,那么就只能等待块擦写完之后再写入。这时候你就会发现SSD性能很差。

文件系统如何管理删除的文件

接下来,我们说一下操作系统是如何管理被删除的文件。这个很简单,文件系统将文件头做一个标记,表明这个文件是被删除的即可。这个操作可能说是瞬间完成。那么这个管理方式,加上SSD的写入操作,导致了SSD性能不佳。那是为什么呢?

设想一下,我们将一个SSD写满文件,然后删除掉这些文件。对于文件系统来说,整个盘是空的。但是对于SSD来说,整个盘都是数据。因为被删除的数据只是被标记了删除位,SSD不知道这些空间可以合理利用,从而提前擦写。

聪明的你看到这里,想出了一个办法!那就是操作系统删除文件的时候,告诉SSD这些地方已经是删除了的,SSD你可以随意处理,提前擦写!这样子,SSD就可以合理安排空间了。

这也就是TRIM的由来。支持TRIM的操作系统,删除文件的时候,会告诉SSD主控那些地方是删除的数据。

看起来TRIM非常不错。不过也有一个地方需要注意,和数据恢复相关。刚才说到操作系统只是将删除的文件做一个标记,并不是真正删除,所以一旦你误删除,你可以通过一些恢复工具找回来误删除的文件。但是一旦操作系统给SSD下达了TRIM指令,而SSD进行了回收,那么你就算用工具恢复,恢复回来的也是一堆垃圾数据。

另外,TRIM只是告诉SSD这些地方可以回收,而不是强制SSD进行回收。所以SSD主控可以选择不回收,或者延时回收。

总结

好了,回到标题的问题。NVMe SSD是不支持TRIM的,因为TRIM是SATA的指令!NVMe使用了全新的协议。NVMe中与SATA TRIM指令等同的是Deallocate。另外,对于SCSI来说,对应的也不是TRIM,而是UNMAP。

如果你喜欢今后能多看到类似的文章,请看完之后点赞收藏分享,这样子我就可以有动力多写一些啦~~~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。