win10专业站 - 最全面的操作系统下载网站

u盘教程游戏攻略电脑学习教程

windows7旗舰版
当前位置:主页 > u盘教程教程 >

固态硬盘技术解析之垃圾回收与TRIM指令

发布时间:2018-09-18 来源:win7旗舰版 浏览量:

U盘的称呼最早来源于朗科科技生产的一种新型存储设备,名曰“优盘”,使用USB接口进行连接。U盘连接到电脑的USB接口后,U盘的资料可与电脑交换。而之后生产的类似技术的设备由于朗科已进行专利注册,而不能再称之为“优盘”,而改称“U盘”。后来,U盘这个称呼因其简单易记而因而广为人知,是移动存储设备之一。现在市面上出现了许多支持多种端口的U盘,即三通U盘(USB电脑端口、iOS苹果接口、安卓接口)。

垃圾回收如何工作?

本文主要解释了采用SandForce主控芯片的固体硬盘的垃圾回收以及TRIM操作情况。但是文中也对其他解决方案有所提及。是一篇比较通俗易懂的文章。

 

 

固态硬盘技术解析之垃圾回收和TRIM指令

    垃圾回收(GC)是所有固态硬盘会执行的一项基本程序之一。但是不同厂商可以采取不同的执行方法,从而影响到固态硬盘的整体性能和耐用性。本文中,我们将探讨一项垃圾回收是如何工作的,是如何实施的以及垃圾回收与TRIM指令和预留空间的关系。

    与传统机械硬盘不同,固态硬盘并不能直接覆盖原来的数据,固态硬盘必须要把旧的数据先擦出然后才可以把新的数据写入。对于固态硬盘来说,垃圾回收是指把现存数据重新转移到其他闪存位置,并且把一些无用的数据彻底删除的过程。一块固态硬盘中的闪存可以被分为许多Block(块),每个块(block)又可以分成页面(pages)。数据可以直接以页面为单位写入,但是要想删除数据却需要以块为单位。因此要删除无用的数据,固态硬盘首先需要把一个块内包含有用的数据先复制粘贴到全新的块中的页面内,这样原来块中包含的无用数据才能够以块为单位删除。删除后,才能够写入新的数据。

    图一展示了这个过程。第一列展示了页面A-D被写入到块X内。但是后来数据产生了变化,数据A’-D’被写入,因此数据A-D现在被标记成无用的数据。与此同时,其他新的数据E-H被写入到原来空白的页面里。(第二列)现在块X已经写满,但是包含着无用的数据(A-D),但是要想获得无用数据占用的页面,我们必须要先把整个块X删除掉。

    要实现删除无用数据A’-D’的目标,块X中的有用数据首先需要被移动到新的块中,这样才能够确保块X被删除。第三列展示了这一过程:数据E-H和A’-D’首先要被移动到一个新块Y中。只有这样才能够把块X数据删除,从而获得一整块X的新空间。这个过程中的数据写入到新块的过程并不受电脑主控管理,而是固态硬盘为了实现加快写入速度的一种内部解决方案。这同时也意味着闪存的写入次数要比电脑主控实际写入的次数多。由于闪存的擦写次数是有限的,这样的操作应该越少越好。但是基于固态硬盘速度的考虑,这项技术仍然是固态硬盘工作的一部分。

 

 

固态硬盘技术解析之垃圾回收和TRIM指令

    表一:垃圾回收过程 图片来源:维基百科。

    需要注意的是,磨损均衡主要是在垃圾回收过程中来实现的。为了能够让固态硬盘中闪存实现比较均衡的磨损,垃圾回收过程中总是把数据写道更新的块中。由于闪存的读写次数有限,如果数据总是不断的写入到这个相同的块中,那么最终的结果就是这个块将会比其他块提前报废。随着不断有硬盘块读写寿命达到极限,这些块将不能够再读写数据。从而造成硬盘容量的不断减少。理想状态下,一块固态硬盘中所有的块在使用寿命期间都能够实现相同的读写次数。

系统识别 vs 硬盘识别

 

在机械硬盘系统中,系统可以直接请求新数据写入到旧数据存储的位置。机械硬盘可以直接覆盖旧数据。在固态硬盘中,境况有所不同。如果想让存储无用数据的块写入新数据,就需要先把整个块删除,才可以写入新的数据。固态硬盘并不具备直接覆盖旧数据的能力。

    操作系统可以理解数据、结构以及数据存储的逻辑位置,但是却不能够理解存储设备的物理结构。任何一个存储系统,硬盘并不明文件的结构。硬盘只简单的知道在某一特定的扇区内写有多少字节的数据。机械硬盘和固态硬盘一样,当操作系统请求相应的逻辑地址的数据时,它们会把物理地址中的数据发送给系统。

    当系统删除某个文件时候,它只是简单的在逻辑数据表内把存储要删除的数据的位置标记为可用而已。使用机械硬盘的系统根本就不需要向存储设备发送任何有关文件删除的消息,因为在将来,系统可以随时把新数据直接覆盖到无用的数据上。固态硬盘的情况就不同,当系统准备把新数据要写入那个位置的时候,固态硬盘才意识到原来这写数据已经被删除了!(无用数据。)当然,固态硬盘也可能再相同的时间内实施了垃圾回收操作,但是受到固态硬盘的结构以及其他条件的影响。

TRIM指令

 

在新一代操作系统中,例如Windows 7/Windows Server 2008 R2/Linux 2.6.33/FreeBSD 8.2/Open Solaris/Mac OS X Lion,它们都加入对Trim指令的支持。这可以让操作系统在删除逻辑表中删除逻辑扇区地址的同时通知固态硬盘某些数据已经无用了。TRIM的先进性在于它可以让固态硬盘在进行垃圾回收的时候跳过移动无用数据的过程,从而不再用重新写入这些无用的数据,达到节省时间的目的。这也会减少闪存删除数据的次数,从而在写入过程中实现高性能。固态硬盘也不需要立即删除或者“垃圾回收”这些TRIM指令告知的位置了,它只是先标记这些位置的数据为“无用”即可。

    下表II和表III展示了不同。

 

 

固态硬盘技术解析之垃圾回收和TRIM指令

    表二表示没有TRIM指令的垃圾回收过程。

U盘有USB接口,是USB设备。如果操作系统是WindowsXP/Vista/Win7/Linux/PrayayaQ3或是苹果系统的话,将U盘直接插到机箱前面板或后面的USB接口上,系统就会自动识别。

关键词: 固态硬盘 垃圾回收(GC)程序 TRIM指令解析 
我要分享:

相关推荐

本站发布的ghost系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!

如侵犯到您的权益,请及时通知我们,我们会及时处理。

Copyright @ 2018 win10专业站(http://www.win10pc.cn) 版权所有  xml地图 邮箱: