图拉丁吧 关注:7,475,004贴子:127,141,818

==高性能SSD卡顿之迷原因分析==

只看楼主收藏回复

前言:本人多年没升级电脑,一直用的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之癌症,治不好的,只会越来越严重。


IP属地:安徽1楼2019-01-30 16:22回复
    楼主说的对不对?不知道,但是囤电子产品没什么意义,谁也不知道?过几年会有什么新东西出来


    IP属地:北京来自Android客户端2楼2019-01-30 16:33
    回复
      暂时未体验到TLC的卡顿,除非超大容量文件连续读写。


      IP属地:江苏4楼2019-01-30 16:45
      回复
        有什么好屯的,买了自己够用就行,科技总是在进步的,说不定什么时候国产存储颗粒就做起来了呢


        IP属地:河南来自Android客户端6楼2019-01-30 16:48
        回复
          西数蓝盘500g,用了400g后就出现几次卡顿,假死十几秒,Win8.1任务管理器里c盘占用100%,但是读写速度都是0,做了trim还是会有


          IP属地:广西7楼2019-01-30 17:05
          收起回复
            别说了,买嘤特尔900p/905p就完事了


            IP属地:山西来自Android客户端8楼2019-01-30 17:07
            收起回复
              我们不讨论技术,从逻辑上去判断。
              想想,MLC时代没什么卡顿这是事实吧。TLC时代卡顿来了,并且并非出在一家主控上。
              举几个例子:使用SM2258XT的英瑞达BX500卡顿,使用三星自家多核主控的970PRO 卡顿,甚至连INTEL的600P一样卡顿。
              并且在WIN10和WIN7下都出现卡顿,而且卡顿发生时并非因写入数据,空闲只读取时一样有卡顿。
              这些都能在网上查到。
              那么不同的主控,不同的品牌有什么相似性?无非共同点就是用了TLC闪存。
              不管卡顿的真正原因是不是我主贴里所说的那样,但起码TLC闪存要背这个锅。
              预言:QLC闪存的SSD卡顿会更严重,如果预言成真,那就佐证了我的猜测!


              IP属地:安徽9楼2019-01-30 17:58
              回复
                你居然有儿子,你儿子还玩方舟,那你一定是个老头子


                IP属地:湖北来自Android客户端10楼2019-01-30 18:10
                收起回复

                  儿子真被卡哭了,方舟生存进化,被恐龙追时卡住了,等好了发现人挂了。哭了。。。


                  IP属地:安徽11楼2019-01-30 18:37
                  回复
                    字太多不看(+3)


                    IP属地:广东来自Android客户端12楼2019-01-30 18:49
                    回复
                      你换固态时 系统是直接迁移的老系统 还是正常步骤重装的
                      磁盘控制器驱动应该影响很大


                      IP属地:湖南13楼2019-01-30 18:59
                      收起回复
                        。。。lz 不要把内存闪存混淆了。 科学和民科都很专研


                        来自Android客户端14楼2019-01-30 19:13
                        收起回复

                          楼上这位,看看这段话吧。


                          IP属地:安徽15楼2019-01-30 19:45
                          回复
                            老看见有人刷图吧技术贴少,没干货,现在有了,三个小时,15楼


                            来自iPhone客户端16楼2019-01-30 19:48
                            收起回复