U盘之家 > 固态硬盘 > 技术分享 > SSD固态硬盘:垃圾回收和TRIM指令详解

SSD固态硬盘:垃圾回收和TRIM指令详解

2012-07-15 02:53来源:小熊在线编辑:冰幻 浏览量:
  • U盘问题,请到问答平台:http://www.upan.cc/
  •   核心提示:
    垃圾回收如何工作? 本文作者Kent Smith,是LSI市场部经理。因此本文主要解释了采用SandForce主控芯片的固体硬盘的垃圾回收以及TRIM操作情况。但是文中也对其他解决方 案有所提及。是一

      

    垃圾回收如何工作?

        本文作者Kent Smith,是LSI市场部经理。因此本文主要解释了采用SandForce主控芯片的固体硬盘的垃圾回收以及trim操作情况。但是文中也对其他解决方 案有所提及。是一篇比较通俗易懂的文章。编译文章基于Thessdreview网站发布的文章,部分图片也来自该网站。 优盘之家

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

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

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

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

    SSD固态硬盘:垃圾回收和TRIM指令详解-U盘之家

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

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

    系统识别 vs 硬盘识别

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

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

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

    www.upan.cc

    TRIM指令

    U盘之家

    SSD固态硬盘:垃圾回收和TRIM指令详解-U盘之家

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

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

    优盘之家

    SSD固态硬盘:垃圾回收和TRIM指令详解-U盘之家

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

    SSD固态硬盘:垃圾回收和TRIM指令详解:http://www.upan.cc/ssd/share/2328.html

     

    • 共2页:
    • 上一页
    • 1
    • 2
    • 下一页
    • (提示:试试键盘"← →"可以实现快速翻页)
    tags: trim  
    (U)优盘之家,是一个集U盘量产工具U盘启动盘制作工具内存卡修复工具U盘检测工具于一体的专业指导性网站,请牢记我们的域名:www.upan.cc
    评论(请自觉遵守互联网相关政策法规,管理可以直接删除恶意评论、广告或违禁词语):
    表情:
     
    网友评论
    回顶部
    关于我们 | 免责声明 | 广告服务 | 联系我们 | 合作联系 | 网站地图 | 友情链接 | 关于淘宝直营店
    copyright © 2002-2005 upan.cc. all rights reserved .
    蜀ICP备09012900号