固态盘寿命真正的杀手:Flash数据写入放大
2016-07-27 09:28:38 来源:华军科技数据恢复
近几年,随着TLC闪存颗粒逐步占领市场高地,固态硬盘的寿命之争又再一次被搬上了舞台,让人争辩,正如同当年SLC不断弱势,MLC成为主流那般。真可谓“眼看他上高楼,眼看他宴宾客,眼看他楼塌了”,万事皆如此,任何新事物替代旧事物都会经过一个由质疑到反复再到接受的过程。
当然,今天咱们并不是去探讨孰优孰略的问题,而是既然聊到了关于固态寿命的问题,除了闪存颗粒的自身体质其着确定性作用外,其实主控中的写入放大机制的存在也是影响固态寿命的关键因素。那么,写入放大机制又是什么呢?写入放大又是如何影响固态寿命的呢?接下来笔者就和大家一起聊聊关于写入放大。
影响固态盘寿命真正因素:写入放大
写入放大,英文名为Write Amplification,这一术语最早是在2008年左右,由Intel公司和SiliconSystems公司 (2009 年被西部数字收购)第一次在公开稿件中提出了并使用,这一术语描述的其实是固态硬盘的目标写入值和实际写入值之间的一个倍数关系,并用阿拉伯 数字表示,写入放大数值越小,越能提升固态使用寿命。
要想完全理解写入放大,我们需要先了解固态硬盘的读写机制。我们知道,固态硬盘的存储单元是由闪存颗粒组成的,无法实现物理性的数据覆盖,只能擦除然后写入,重复这一过程。
因而,我们可以想象得到,在实际读写过程中,数据的读写势必会在闪存颗粒上进行多次的擦除写入,特别是当某些区块已经完全被塞满的情况下。
这些多次的操作,增加的写入数量和原始需要写入的数量的比值,就是所谓的写入放大。所以说,写入放大数值高,会损耗固态硬盘寿命。(固态硬盘闪存颗粒有着额定的P/E值,即最大的读写次数,写入放大高,P/E损耗快,寿命低。)
写入放大详解及影响因素
举个例子,最坏情况下的,假如我要写入一个4KB的数据,并恰好目标块没有空余的页区,需要进行GC回收。
下面,我们一起来分析这个过程的写入放大的数值。首先是主控读取目标块512KB,然后GC回收擦除512KB,接着改写512KB空白区用来存放原始的写入4KB数据。即原始写入数据仅为4KB,实际写入512KB,写入放大值为512/4=128倍。
通过上面例子演示,我们应该大致了解了写入放大的概念,以及写入放大的危害。那么,哪些因素能够影响写入放大呢?GC回收机制,诚如上文中所举示例,这一机制需要完全擦除整个区块,进而增加了整个数据的写入放大。
磨损均衡(WL),这一机制主要是通过均衡所有的闪存颗粒,从而延长整体的使用寿命,然而依旧是增加整体的写入放大。Trim机制,ATA指令,避免了不必要的GC回收次数,从而减少了写入放大。
除了上述的主控机制能够影响写入放大的数值,固态硬盘内部的OP预留空间大小对于写入放大也有着相当的影响。op预留空间越大,可用的空白闪存块越多,即使在最坏的情况下(即所有的闪存块都塞满),主控也无需进行GC回收,自然就大大减少了多余的读写次数,从而极大的降低写入放大。
聊了这么多,肯定有朋友会说,“知道写入放大,又有什么用呢?我们又无法阻止写入放大。”
实际上,对于我们普通用户来说,我们可以通过修改OP预留空间,以及及时清理固态硬盘中的无用数据,留出更多的空白空间,以减少多余的擦除和写入,从而降低固态的写入放大值,提升固态寿命。
更重要的是,写入放大是衡量一个主控性能最为关键的因素,我们在选购固态硬盘时可以从写入放大值去衡量主控性能从而推断固态硬盘的整体性能。