前言:本人多年没升级电脑,一直用的64G 128G MLC SSD,主控为667H SM2249XT。后来儿子要玩方舟生存进化,买了块英某达BX500 240G,京东货,入手后卡的不要不要的,在卡顿,假死,无响应一个月后找京东售后退了。准备另购SSD硬盘,才发现现在很多SSD有卡顿,假死现象,然后发现这种现象多集中在使用TLC闪存盘上,故花了些时间恶补了下这几年的SSD和闪存技术信息,最终得出如下结论,觉得有必要发出来供大家参考,有错误请指正。
分析: 当年MLC大行其道时,没听说有什么卡顿现象,等TLC普及了,卡顿就来了。先是怀疑慧荣的主控或固件是否有缺陷,后来发现三星970PRO用户升级某版固件后也大几率卡顿,不同的主控不同的固件都卡,这就很奇怪了。
其实分析下闪存和主控的工作原理就不奇怪了。NAND 闪存是以区块为单位擦除的,写信息是以CELL为单位写的。这样一来就可能造成某区块里只有少量有用数据,而浪废区块其余空间,所以才有了GC垃圾回收技术。
而动态,静态平衡磨损技术这个大家都很熟悉了,不再多说。
但是自TLC闪存或小制程(15NM或更小)MLC的量产普及,闪存另一个特性被大家忽略了。就是数据保持时间。
查阅相关资料会发现,以三星为首的和以INTEL/镁光为首的两大闪存阵营。在对FLASH芯片栅级的处理上技术是不一样的。INTEL和镁光保持着传统浮栅结构,也就是栅级下面是氧化物隔离层。而以三星为首的几个厂家,是以(英文名我忘了,且称海绵吧)栅下填充电荷吸收层技术为主。原理就象海绵吸水一样把电荷吸在里面。
这两种技术各有优劣,传统的浮栅数据保持时间较长,但PE数少。海绵型的同工艺下PE数较多,数据保持时间较少。在3D堆叠和海绵栅的加持下,TLC的PE数可以达到一个令人满足的数量。但却造成另一个严重影响性能的参数就是数据保持时间的减短。
为什么这个参数不透明且影响严重呢?且听我说。
TLC的ECC纠错再复杂,随着主控性能和算法的升级发展,这些都不是问题,现在很多主控是多核了,比如马威尔的,比如三星自家的。但卡顿依旧存在。卡顿和主控性能并不是绝对关联的。
重点是:在任何系统中,只要发生读写冲突的情况,必然会造成卡顿。也是说如果两个进程去抢着读写同一个文件,那么必然会发生掉速,卡顿甚至无响应死机的情况。这个很好理解。
那么在TLC闪存中,由于数据保持时间是有限的,为了能正确的读取已保留的数据,TLC闪存是需要定期刷新CELL的,未来的QLC这样的刷新动作就更频繁(虽然离DRAM的刷新充电还差的远,但也足够造成严重影响了),而每当冷数据需要刷新时,这个数据区块或CELL就会被占用,如果这时候系统或软件同时去读这块的数据,必然就卡顿了。
结果就是,如果不刷新TLC闪存的冷数据,会造成ECC纠错困难,读取延迟变大,甚至变成失效块(数据丢失这是绝对不允许的),可是如果经常刷新数据,则又会造成严重的卡顿,和寿命的减少。
再加上GC回收,静态平衡磨损这两大区块占用过程的加持,TLCSSD不卡才怪了,卡是必然的。未来的QLC会更卡,而且卡到你怀疑人生!!!
那么,为什么MLC时代就没这么严重呢?很简单,MLC时代制程多是20NM+的,且2BIT的数据保持时间相对要长久的多。原理上MLC一样也需要周期刷新数据,但由于次数很少,在固件上可以把间隔放的很宽,以至于你都感觉不到。
另外,由于制程变小,量子效应加剧,数据保持时效并非是一个平均值曲线,而是带有离散性。所以主控在闲置时也要不停的内部检查数据的有效性。防止失效数据的产生。
综上所述:这就是为什么TLC闪存,特别是大容量小制程TLC,MLC闪存卡顿的最可能的原因。并且,没有解决的方法。因为只要闪存有掉电的特性,就必须要主控去干预,而主控一旦进行数据干预就必然会产生并发冲突,造成卡顿,这是逻辑上无解的局面。
PS:INTEL和镁光翻脸好象就是应该镁光不想再开发新技术闪存而有意转投三星那样的海绵栅技术
INTEL的奥腾用的新型存储器,是用电阻值改变来记录数据的,PE数和数据保持时间远超现有的闪存,是未来代替闪存的技术方向,当然现在贵的一塌。
建议:囤些高性能MLC SSD盘吧,卡顿是闪存SSD之癌症,治不好的,只会越来越严重。
分析: 当年MLC大行其道时,没听说有什么卡顿现象,等TLC普及了,卡顿就来了。先是怀疑慧荣的主控或固件是否有缺陷,后来发现三星970PRO用户升级某版固件后也大几率卡顿,不同的主控不同的固件都卡,这就很奇怪了。
其实分析下闪存和主控的工作原理就不奇怪了。NAND 闪存是以区块为单位擦除的,写信息是以CELL为单位写的。这样一来就可能造成某区块里只有少量有用数据,而浪废区块其余空间,所以才有了GC垃圾回收技术。
而动态,静态平衡磨损技术这个大家都很熟悉了,不再多说。
但是自TLC闪存或小制程(15NM或更小)MLC的量产普及,闪存另一个特性被大家忽略了。就是数据保持时间。
查阅相关资料会发现,以三星为首的和以INTEL/镁光为首的两大闪存阵营。在对FLASH芯片栅级的处理上技术是不一样的。INTEL和镁光保持着传统浮栅结构,也就是栅级下面是氧化物隔离层。而以三星为首的几个厂家,是以(英文名我忘了,且称海绵吧)栅下填充电荷吸收层技术为主。原理就象海绵吸水一样把电荷吸在里面。
这两种技术各有优劣,传统的浮栅数据保持时间较长,但PE数少。海绵型的同工艺下PE数较多,数据保持时间较少。在3D堆叠和海绵栅的加持下,TLC的PE数可以达到一个令人满足的数量。但却造成另一个严重影响性能的参数就是数据保持时间的减短。
为什么这个参数不透明且影响严重呢?且听我说。
TLC的ECC纠错再复杂,随着主控性能和算法的升级发展,这些都不是问题,现在很多主控是多核了,比如马威尔的,比如三星自家的。但卡顿依旧存在。卡顿和主控性能并不是绝对关联的。
重点是:在任何系统中,只要发生读写冲突的情况,必然会造成卡顿。也是说如果两个进程去抢着读写同一个文件,那么必然会发生掉速,卡顿甚至无响应死机的情况。这个很好理解。
那么在TLC闪存中,由于数据保持时间是有限的,为了能正确的读取已保留的数据,TLC闪存是需要定期刷新CELL的,未来的QLC这样的刷新动作就更频繁(虽然离DRAM的刷新充电还差的远,但也足够造成严重影响了),而每当冷数据需要刷新时,这个数据区块或CELL就会被占用,如果这时候系统或软件同时去读这块的数据,必然就卡顿了。
结果就是,如果不刷新TLC闪存的冷数据,会造成ECC纠错困难,读取延迟变大,甚至变成失效块(数据丢失这是绝对不允许的),可是如果经常刷新数据,则又会造成严重的卡顿,和寿命的减少。
再加上GC回收,静态平衡磨损这两大区块占用过程的加持,TLCSSD不卡才怪了,卡是必然的。未来的QLC会更卡,而且卡到你怀疑人生!!!
那么,为什么MLC时代就没这么严重呢?很简单,MLC时代制程多是20NM+的,且2BIT的数据保持时间相对要长久的多。原理上MLC一样也需要周期刷新数据,但由于次数很少,在固件上可以把间隔放的很宽,以至于你都感觉不到。
另外,由于制程变小,量子效应加剧,数据保持时效并非是一个平均值曲线,而是带有离散性。所以主控在闲置时也要不停的内部检查数据的有效性。防止失效数据的产生。
综上所述:这就是为什么TLC闪存,特别是大容量小制程TLC,MLC闪存卡顿的最可能的原因。并且,没有解决的方法。因为只要闪存有掉电的特性,就必须要主控去干预,而主控一旦进行数据干预就必然会产生并发冲突,造成卡顿,这是逻辑上无解的局面。
PS:INTEL和镁光翻脸好象就是应该镁光不想再开发新技术闪存而有意转投三星那样的海绵栅技术
INTEL的奥腾用的新型存储器,是用电阻值改变来记录数据的,PE数和数据保持时间远超现有的闪存,是未来代替闪存的技术方向,当然现在贵的一塌。
建议:囤些高性能MLC SSD盘吧,卡顿是闪存SSD之癌症,治不好的,只会越来越严重。