TLC/QLC固态硬盘的死结,SSD为什么会掉速?
如今已经是9102年了,装机、升级电脑首选SSD硬盘的理念早就深入人心了,再加上这一年多来NAND闪存价格不断下滑,SSD硬盘价格应声回落,1TB容量的SSD硬盘千元内售价已经是主流,而且还可以买到更高性能的M.2硬盘而非SATA硬盘,不怕死的话还可以考虑一些将近5毛/GB的杂牌SSD硬盘,买来当仓库盘还是可以的。回头看看多年不降价的HDD硬盘,机械硬盘市场日薄西山不是没道理的。
但是HDD硬盘逐渐远离桌面、笔记本电脑市场,这就能代表SSD硬盘各种完美了吗?还真不是,如今在大降价的环境下SSD硬盘各种“真香”,但它还是有一个让人糟心的问题——掉速。对于SSD硬盘掉速,长期使用过SSD硬盘的玩家应该有体会(也有人其实没意识到这个问题),今天的超能课堂我们就来谈谈SSD硬盘的掉速问题。
对于SSD硬盘掉速,目前并没有准确的定义,这里我们就按照字面意义上的掉速将其理解为“性能下降”,分析目前可能导致SSD掉速的种种原因及解决方案。如果想更好地理解SSD硬盘掉速问题,建议阅读一下我们之前做过的两篇横评:《花开正当时,十四款120/128GB SSD横评》(7年前我们的评测就开花了)、《再度重拳出击,十六款240/256GB固态硬盘2014年度横评》、《超能课堂(152):QLC闪存靠谱吗?它可否堪用?》。
SSD掉速之SLC、MLC、TLC到QLC变迁
闪存类型的升级也是SSD硬盘掉速的原因吗?仔细想想的话还真没错,实际上我们可以说正是闪存类型不断变化才导致了SSD硬盘掉速问题越来越严重,如果我们还在使用SLC闪存,那掉速问题早就不是事了,只不过SLC闪存硬盘这事别想了,最好的闪存意味着最贵的成本,即便厂商现在还敢把SLC闪存当主力,普通消费者也用不起。
从SLC、MLC到TLC再到QLC,由于cell单元可以保存的电荷位越来越多,容量在不断增加,相应地成本在下降,但是NAND闪存先天的特性就注定了电位越多,控制就越复杂,写入数据的时间就越长,导致性能大幅下滑(主要是写入性能,读取性能还好)。
我们现在看到的TLC、QLC闪存的硬盘性能指标还不错,SATA接口的也能达到500MB/s写入速度,M.2接口的视PCIe 3.0通道数不同,写入性能可达1GB/s、2GB/s甚至更高,但是这样的性能是施了魔法之后的,是理想情况下的性能。
上图就是英特尔QLC闪存的660P硬盘的实际表现,随着写入数据量的增加,缓存空间用完之后QLC原始性能就暴露无遗了,写入速度就降至100MB/s,这性能没比HDD硬盘快多少了。
SSD掉速之垃圾回收GC、TRIM
提到SSD硬盘掉速问题,老玩家可能还会想起来早些年浦科特 在自家M系列高性能SSD硬盘中宣传的不掉速功能,这个卖点当时是吸引了不少SSD用户的,考虑到那时候MLC闪存还是市场主力,SSD硬盘掉速主要是因为当时的主控管理机制问题所致。
具体来说就是SSD的GC垃圾回收以及TRIM指令问题,如果大家看过我们之前的科普文章,就知道NAND闪存特殊之处就在在于写入文件的方式,需要一块一块的删除,由于各种写入、删除操作会在SSD留下杂乱的数据,其中有些是还有用的,有些就是无效的,GC功能启动之后就把有用的数据拷贝到另外的区块,原来存储数据的区域就会被清楚,恢复空盘水平以准备写入新的数据,SSD硬盘的性能也就恢复了。
除了GC垃圾回收机制,微软在Windows 7及之后的系统还引入了TRIM指令,这是基于SATA控制器的一个指令,一旦有文件删除或者分区格式化,操作系统就会发TRIM指令给SSD主控告诉它某处的数据已经删除了,SSD因而知道那些数据是能动那些不能动的,之后就可以进行清空操作以恢复性能了。
GC及TRIM也能影响SSD硬盘的掉速,不过现在来说这些功能已经变成了SSD的基本功能,操作系统上的支持也不是问题了,因为这两个问题导致SSD掉速的现象少多了。
SSD掉速之840 EVO掉速门
从SLC到MLC再到TLC、QLC,不仅闪存的性能在逐渐下降,其实可靠性也是在降低的,反映到物理层就是由于TLC、QLC闪存存储的电荷位更多,控制也更复杂,而随着时间的流逝,电子的活性也会损失的,在TLC闪存刚问世的时候,三星840 Evo就出现过长期不用导致性能下降的问题。
840 EVO掉速门事件就是说它在读取存储超过数周或者数月的旧文件时,速度严重不如预期,官方指标中840 Evo读取速度超过450MB/s,但读取旧文件时速度就低至60MB/s,速度明显下降。
对于这个问题,三星之后也做了调查,表示“借助闪存管理软件算法,SSD通常会随时间校正Cell单元的状态,840 Evo的读取-重试(read-retry)操作太过激进,导致了整体读取性能的下降。这种情况只会发生在其内部Cell单元无数据变化的情况下,如果这个单元的数据随后迁移了或者被覆写了,这就不会有性能下降的问题 。”
最后三星发布了新固件,解决了840 Evo掉速的问题。在这个问题上,三星没有承认这是TLC闪存的问题,但在发展初期,TLC闪存从闪存到主控管理都是有些问题的,出现这个问题并不意外。
SSD掉速之主控过热保护
上面提到的SSD掉速都是围绕闪存而言的,但SSD主控其实也会影响SSD掉速问题,这主要是由于SSD硬盘的过热保护问题引起的,SATA硬盘上基本上没这么问题,主要是在高性能M.2硬盘大量上市之后才比较集中的。
SSD主控本质上也是基于ARM或者自研架构的CPU,为了提高性能,SSD主控往往也是多核心架构了,三核甚至四核主控不少见,高负载下发热也是个问题。对于高性能PCIe、M2接口的SSD硬盘来说,由于空间狭小,发热集中,主控区域的温度超过90°C甚至上百度都很正常,为了避免高温损坏,SSD硬盘会有温控机制,检测到温度过高就会降频,进而减少发热。
不过降低主控频率,实际上也会降低SSD性能。要想解决因为发热掉速的问题,最常用的手段就是提高散热效果,比如三星在970 Pro硬盘的主控设计就使用了更好的封装,整个主控使用了金属外壳封装,提高了导热性能。
当然,更直接的手段还是加装散热片,所以大家可以看到各种M.2硬盘都开始流行散热马甲了,影驰之前还推出了铁甲战将M.2硬盘,使用了厚度惊人的散热片,虽然样子难看了点,但是效果杠杠滴。
除了上面介绍的这些掉速原因,其实还有一些别的因素会影响SSD性能正常发挥,比如4K没对齐、同步/异步闪存、AHCI/IDE模式等等,不过这些操作现在来说并不是主要问题了,以前是问题主要还是SSD不普及,很多人不懂设置,而现在Windows系统自己就加入了很多SSD优化设置,第三方工具对SSD的支持也到位了。
SSD硬盘的缓存结构:从DRAM Cache到SLC Cache
以上有关SSD掉速的内容涉及到方方面面,不过对单个SSD硬盘来说,SSD掉速问题没那么复杂,下面我们要进入正题了,先来看看现代SSD硬盘的基本结构:
不论SATA还是M.2硬盘,它们的PCB布局都差不多,上面的M.2硬盘从左到右分别是DRAM缓存、主控及NAND闪存,其中主控及NAND闪存是必不可少的,DRAM缓存可以有也可以没有,没有的主要是低端SSD硬盘,减少DRAM缓存可以降低成本,特别是过去两年中DRAM内存因为大涨价,低端SSD更加流行无DRAM缓存的方案,它们会用过HMB主机内存缓存来弥补导致的性能损失。
对于高性能的SSD硬盘,DRAM缓存不可少,因为就算是DDR3缓存,其带宽也能达到数GB/s甚至十几GB/s,远高于SSD闪存的性能,对提升性能还是很有帮助的,现在三星等公司在高端SSD上已经开始使用DDR4-2133做缓存了。
至于DRAM缓存容量,容量少的有128MB,256MB、512MB比较常见,随着SSD硬盘越来越大,1GB缓存的也不少见了,一般来说是1TB闪存配1GB DRAM缓存,越高越好。
DRAM缓存是现代SSD硬盘的第一道缓存结构,从硬盘上读取数据首先就是看DRAM缓存中有没有需要的数据,如果有,那就先用这里的,所以速度会很快,如果缓存中没有再去NAND闪存中寻找,速度就是NAND闪存的了,相对来说慢很多。
总的来说,DRAM缓存对SSD硬盘来说是锦上添花的,从DRAM缓存到NAND闪存也是存在掉速的,不过通常这种调速大家是感受不出来的,毕竟缓存容量还是太小了,很容易就超出。
SSD硬盘大部分情况下还是要依赖NAND闪存自身性能的,但我们都知道从SLC到MLC再到TLC及现在刚刚兴起的QLC闪存,写入性能是不断下降的,原始的TLC、QLC闪存性能非常难看,不加修饰的话QLC闪存写入性能可能都没有100MB/s,HDD硬盘都比它快不是吹的。
但实际发售的TLC及QLC闪存硬盘中,不论SATA还是M.2接口的,性能都很强大,三星970 Evo这样的产品中250GB版标称写入性能可达1500MB/s,但它就是使用了写入加速(Write Acceleration)技术之后的性能,实际性能大约是300MB/s,中间差了四倍性能。
SSD写入加速技术是个通用称呼,常见的方案是SLC Cache(SLC缓存),它的意义就是字面意思——用SLC当缓存提速,因为SLC闪存是性能最好的。
在MLC闪存时代,SLC缓存技术还不是必要的,三星970 Pro都没有使用这样的技术,而970 EVO就有,但SLC缓存也不是没有代价的,因为SLC只能存储1位数据,TLC是3位数据,QLC是4位数据,在TLC/QLC闪存上使用SLC缓存意味着是牺牲容量换取性能,这是一个魔鬼交换,说的难听点就是你选择X味的巧克力还是巧克力味的X一样,都不是最好的选择,但不得不选。
用SLC缓存可以提升SSD的写入速度,让它看起来很NB,但是这意味着要损失一部分空间,具体多大要看厂商选择的方案,如果全盘方案的话就意味着只有1/3甚至1/4的容量可用。
更关键的是,即便用了SLC缓存,一旦写入数据超过了缓存容量,SSD性能还得现原形,这个时候就是SSD硬盘掉速了,因为超过缓存加速空间之后就不得不使用原始TLC/QLC性能,这个时候会很难看,写入速度100MB/s左右很正常。
当然,SLC缓存带来的额外好处也不是没有,那就是意外断电时损失更小,毕竟SLC是存储1位数据的。
具体的每家SSD厂商中,SLC Cache技术有不同的叫法,三星叫做TurboWrite,SanDisk叫做nCache,美光有Dynamic Write Acceleration动态缓存加速技术。这些技术实际上也是分为不同类型的,有全盘SLC Cahce的,也有部分空间做缓存的,其中全盘模拟效果最好,但对空间浪费是最大的,所以现在SLC Cache技术普遍是划出部分空间,具体选择多少空间是厂商综合考虑的,10%以下可以,20%也可以。
另外,不论全盘还是部分空间模拟,实际上还有动态及静态SLC Cache之分,这两种技术其实也是各有优劣,美光的DWA就是动态写入缓存加速技术,它的好处就是在用户用了不同容量之后都可以保持较好的加速性能。
总之,在SLC缓存上各大厂商有自己的选择,缓存空间、缓存分配、加速策略都有可能是不一样的,技术路线没有高下之分,但不论哪种,SLC缓存空间用尽之后,SSD的性能都会暴露出应有的水平,那就是TLC/QLC原始性能。
就是这一点,SSD硬盘如果使用的空间越多,那么剩余空白容量就越少,这对缓存加速越不利,所以性能就越低,这也是很多人使用SSD硬盘感觉越用越慢的根源,常说的掉速就是这么来的。
对于SSD掉速问题,除了特定问题导致的之外,如果是因为缓存用尽而掉速,那还真没什么好办法,除非不怕倒腾数据的麻烦,经常把SSD硬盘安全擦除一下。
如果对掉速问题很介意,现在的选择只有购买MLC硬盘或者购买大容量SSD,容量不低于1TB,越大越好。
本文经超能网授权转载,原标题:《超能课堂(180):TLC/QLC硬盘的死结,SSD为什么会掉速?》,作者:孟宪瑞,未经许可请勿转载。
青狐妖
校验提示文案
McLarenXyy
校验提示文案
落寞的背影
校验提示文案
绯色之风
校验提示文案
小罐儿
校验提示文案
冰封000
校验提示文案
micscorpion
校验提示文案
暴躁哥dpgisdpg
校验提示文案
不知名的值友
校验提示文案
啊明44
校验提示文案
ndswj
校验提示文案
leehm
校验提示文案
itanium
校验提示文案
sheeplam
校验提示文案
焉知丶鱼之乐
校验提示文案
LevnKin
1、看中是512g的970Pro做系统盘,因个人习惯经常在桌面存储大量的文件,所以至少会使用300-350g的容量,有用过的大佬说说这么使用的话回会出现掉速情况么?理论上寿命大概能坚持多久? (几百m至几g的大文件偶尔有,不多
2、还打算弄一块1t的ssd专门安装软件和装游戏使用,优先考虑性价比的话,nvme的ssd和SATA的ssd选哪种接口的比较好(例如860evo和970evo),求推荐
校验提示文案
Cye3s
都很贵
校验提示文案
值友7170413065
感觉QLC当仓库盘的话,性价比没有机械高,当主盘的话速度又慢。
还是MLC+机械用着吧,希望以后能出QLC不掉速版本
校验提示文案
cxc000001
校验提示文案
值友9566355711
校验提示文案
下半夜的人
校验提示文案
cobinzhang
校验提示文案
cobinzhang
校验提示文案
廢物做題家
校验提示文案
[已注销]
校验提示文案
rogershelley
校验提示文案
花不归土
校验提示文案
值友5575540610
校验提示文案
蔚蓝de天空
想想当年那些256g mlc都是800+的东西
校验提示文案
值友7170413065
感觉QLC当仓库盘的话,性价比没有机械高,当主盘的话速度又慢。
还是MLC+机械用着吧,希望以后能出QLC不掉速版本
校验提示文案
newbug
校验提示文案
月夜茶会
校验提示文案
黑肉石斑鱼
校验提示文案
一位喜欢购物的老师
校验提示文案
不敢吃火锅的人
校验提示文案
消逝风中
校验提示文案
kevinyg
校验提示文案
zhuzjj
校验提示文案
bitbyte
校验提示文案
HadlAce
校验提示文案