固态硬盘技术在数据存储应用领域的普及应用使得固态硬盘解决性能下降问题的方式逐渐受到人们的关注。最大的问题之一是这些硬盘收集垃圾并在写入操作之前将它们从数据块中删除的方式。
>众所周知,”垃圾收集(Garbage collection)”可以保证在每次写入操作之前不必对整个数据块进行擦除,从而提高写入性能。垃圾收集在后台工作,将之前标记删除的数据块收集起来,然后在每个垃圾区块执行整区擦除,然后将回收的空间返回以便写入操作再次使用。
>拥有创新垃圾收集解决方案的厂商包括Indilinx、OCZ Technology Group 和SandForce。
>市场调研机构Objective Analysis的分析师Jim Handy说:”固态硬盘面临着不能存在于传统硬盘中的困难,在新数据被写入之前,闪存必须被擦除。”Objective Analysis预计企业固态硬盘市场的销量将增长148%。
>闪存的软件问题
>Handy称,擦除困难来源于目前所有的软件都是为传统硬盘而编写的,不适用于固态硬盘中的闪存。
>Handy说:”传统硬盘可以在现有数据上覆盖写入新数据。由于软件不能适应闪存的‘写入前擦除’需求,固态硬盘中的控制器必须解决这个问题。 未使用的和未擦除的区块被移动到后台进行擦除。”
>Indilinx副总裁Geonyoung Hong表示,后台垃圾收集的主要优势是提高写入性能。
>Hong表示:”如果后台垃圾收集不影响主机的ATA指令执行过程,它就不会降低固态硬盘的性能。后台垃圾收集是由一个预设空闲周期来启动,同时实时计算垃圾收集的成本。”
>Hong补充说,有了那些预防措施,写入放大增量和持续时间减少就可以被控制在一个合理的程度内,几乎不会对固态硬盘造成任何不利影响。
>Hong表示:”主机发出任何ATA指令,后台垃圾收集操作就会马上中止。”
>几乎所有的固态硬盘都在使用超额预备来协助垃圾收集。固态硬盘中的闪存容量比用户可用的容量要多一些,一块64GB的固态硬盘实际包含的内部NAND容量或许是80GB,但是用户见到的只有64GB。 另外的16GB容量是为后台操作而准备的。
>Hong表示:”每一块固态硬盘都会因为各种原因而预备一定的容量。”他说,固态硬盘行业领先的标准开发组织JEDEC建议的预备容量为总容量的7%。 如果这个比率加大,那就是超额预备了。
>SandForce的首席技术官Radoslav Danilak指出,当固态硬盘回收区块即将有用数据从多个区块转移到一个数量相对更少的区块时,经常会发生问题。
>Danilak说:”主机最终会需要用来自用户或操作系统的更新来替换那些数据,这样就会让某些刚刚回收的数据马上变成过期数据。”
>Danilak说,在这个例子中,固态硬盘重新写入的数据是主机不需要的数据。他说:”这其实就增加了固态硬盘的写入放大因素,加快了闪存的寿命损耗。 更好的解决方案是通过执行垃圾收集来改善整个过程,让它可以在不降低硬盘性能的情况下与主机写入操作同时进行。”
>执行垃圾收集后的固态硬盘性能
>Danilak指出,垃圾收集之前的写入性能通常都非常高,各个供应商之间的差别不大。
>Danilak说:”对每个区块进行一次写入操作后,硬盘就开始垃圾收集,写入性能就会大幅下降,有时甚至会降低90%。”
>他说,SandForce的解决方案可以让一个硬盘同时执行写入主机操作和垃圾收集。
>Danilak表示,SandForce SSD Processors即便是配置廉价MLC内存时的写入性能(30000随机写入IOPS,4000传输空间)也比其他基于MLC的解决方案(通常低于1000IOPS)和较高成本基于SLC的解决方案(通常低于5000IOPS)的性能要高一些。
>TRIM有助于保持固态硬盘性能
>OCZ Technology Group的产品管理副总裁Eugene Chang表示,OCZ采取了另一种不同的技术来处理垃圾收集。
>他说:”我们的硬盘具有垃圾收集功能或TRIM支持,实际使用取决于硬盘结构(比如内部RAID)、特定目标市场和应用程序。”
>Chang补充说,OCZ的目标是将固态硬盘的性能保持在高于硬盘寿命的最高水平之上。他说,OCZ使用了两种基本的垃圾收集方法:将维护整合在固件中,和提供用户工具来完成同样的任务。
>Chang表示,OCZ提供了3种不同的垃圾收集方法。
>某些OCZ硬盘在固件中配备空闲时垃圾收集功能,包括面向高性能需求应用的PCI-Express和高容量3.5寸固态硬盘。OCZ的主流2.5寸固态硬盘解决方案具备TRIM支持,由Windows 7和各种版本的Linux系统启动。
>Chang说,对于Windows XP或Vista用户,OCZ提供了一个手动垃圾收集工具,可以由用户自行决定使用。OCZ还提供了一个针对XP和Vista系统的垃圾收集升级固件。
>Chang说:”垃圾收集只是OCZ为长期支持固态硬盘性能而设置的众多功能中的一项工具。”
>Handy说,垃圾收集的问题在短期内不会过时。
>他说:”我们预计这个问题在得到解决之前我们还将听到更多关于这个问题的评论。尽管如此,大多数现有的垃圾收集技术还是足以满足目前的应用软件的需求。”