浅谈SLC缓存的基本原理
首先介绍一下零售级固态硬盘一般使用的闪存有,SLC,MLC,TLC等。各闪存的特点分别为SLC速度快,价格贵,(基本绝迹)。MLC速度一般,价格适中(零售基本绝迹)。TLC速度较慢,价格便宜(当家主力)。当固态硬盘的主力闪存进入TLC时代势必会有闪存直写速度低的问题需要去面对,要想整明白TLC闪存写入速度较MLC和SLC慢的问题那就先要了解SLC,MLC,TLC的工作状况。
闪存的基本存储原理是根据浮栅晶体管中所锁定的电子数来确定此单元表示的数据,SLC储存二个状态1,0;MLC可以储存四个状态11,10,01,00;TLC可以存储8个状态111,110,101,100,011,010,001,000。关于闪存速度我们可以简单的理解成住一要尺寸的杯子里倒水。把SLC闪存理解成一个无刻度标识的水杯,水龙头可以开最大的水量进行注水,把MLC闪存理解成有4个刻度的杯子当我们用水龙头往杯子里倒水的时候就需要适当减少水龙头的水量以达到精确,而TLC闪存则是有8个刻度的水杯,当通过水龙头住我们杯子里倒水,水龙头的水量较MLC要更小了。
随着闪存3D堆叠的技术发展,数据校验技术进一步完善,TLC闪存的寿命也已经过万次,为了尽可能的保持固态性能TLC闪存在实际应用中大量的使用了SLC 缓存的加速策略。一般会采用动态SLC缓存和固定SLC缓存。
1:动态容量,顾名思义,把整个固态硬盘剩余容量来划分SLC Cache。这个模式的优点就是容量越大,会有更大的缓存冗余,在硬盘空间还不是很饱和的状态下时,写入数据会非常漂亮,缺点随着硬盘空间占用,整个硬盘的性能也会随着占用率提高而逐渐下降,整个硬盘的使用体验一致性稍差。随着固态固件的智能化提升,主控会更加合理的去划分空间,以保障用户在使用过程中尽可能的实现一致。极限使用下SLC缓存爆掉后也会出现地板写入速度,因为主控要一边释放SLC缓存,一般完成TLC直写。
2:固定容量,固定容量的SLC 缓存通常是SSD厂家根据应用场景的研究,再结合SSD的容量而设置一个固定的容量来做为SLC缓存。需要注意的是,固定容量的SLC 缓存用掉一部分后,主控及固件会判断固态使用环境,动态的释放SLC缓存;所以这个“固定容量”其实是循环使用的。只有少数工况下SLC缓存,固态对TLC进行直写。
例如致态TiPlus5000 1T版本固态就是采用80G固定容量SLC缓存容量的方案。简单理解当写入小于,等于80G时固态可以提供非常强悍的写入性能,当超过80G时固态会出现一次速度下降固态进入TLC直写模式,绝大多数的时候不会超过SLC缓存之外的写入。
1.第一段为SLC写入阶段,当SLC达到写入阈值后会转到TLC阶段;
以致态TiPlus5000 1T版本为例,在前80G时写入速度为连续写入速度在前80G保持在2500MB/s到2800MB/s之间,这个速度的达成正是因为致态厂家为TiPlus5000 1T版本设置了80G的SLC缓存,即SLC Cache。致态TiPlus5000 使用的是长江存储Xtacking® 2.0专利架构的第三代3D NAND,TLC原厂闪存颗粒,它的SLC Cache是通过将一部分TLC模拟成SLC的工作模式来是实现的。这80G SLC Cache的存在可以极大的提升连续写入速度(连续写入不超过80G的情况下),从而大幅提升使用感受。80G的SLC Cache日常家用一般极少会碰到不够的情况,所以我们一般都是在享受SLC Cache的加速,即我们基本都是处于第一阶段。
需要强调的是,SLC Cache是一个动态循环补充的过程,即如果你像我一样对致态TiPlus5000 1T版本连续写入了120G的文件,并不代表SLC Cache就永远没有了,主控会及时补充划分新的SLC Cache出来,当你下次连续写入一个50G的文件时,你依然会处于高速的第一阶段状态上。
2.第二段为TLC写入阶段,此阶段的速度为纯TLC速度;
第二阶段我们仍然以致态TiPlus5000 1T版本为例,从上图我们可以看到从80G附近,写入速度有一个明显的下降,直接降到了1350MB/s,这个1350MB/s的速度就是第二阶段,即TLC直写阶段,这一阶段的速度也就是大家所常说的缓外速度。这个阶段很好理解,就是没有SLC Cache的加持了,这一阶段在很大程度上算是TLC颗粒本身的直写速度。以致态TiPlus5000 1T为例,它的缓外速度从上图可以看出在1350MB/s,属于较好的缓外速度,其它原厂品牌的一些竞品大约只有480MB/s到530MB/s,抛开主控、固件等影响因素,我们可以理解为长江存储第三代3D NAND,TLC闪存在闪存直写性能方面比较优秀。
目前,绝大多数零售SSD产品基本是采用较大固定容量SLC Cache和动态SLC Cache的设计方案,所以基本上SLC Cache都很大,我们日常家庭使用能够碰到第二阶段的机会并不多,但是对于一些有大容量连续写入的用户来说,这个阶段的写入性能对于使用体验的影响是非常大的,所以对于这部分用户来说,选择一款缓外写入速度较高的固态至关重要。
3. 第三段速度曲线包含2种行为,一种是merge,即TLC写入达到阈值后将SLC的有效数据搬移至TLC;另一种继续TLC写入。这两种行为相比于单纯TLC写入会占据更多的时间,直观表现为速度进一步下降。
最后这个阶段也是比较难碰到,需要进行一个足够大的写入,当第一阶段过去,第二阶段进行了很长时间达到一个阈值(不同产品策略不同)会出现上面提到的第三阶段。
说到第三阶段,首先需要知道merge的意思,比如对致态TiPlus5000 1T进行一个120G的连续写入,这时候SLC Cache是要被完全用完的,后面的40G是直接写入TLC的,但是上文我们提到SLC Cache是动态补充的,这个补充的过程中需要将SLC Cache中的数据“搬运”到TLC当中去,因为咱们在文章最上面说了,TLC和SLC浮栅晶体管中所锁定的电子数是不一样的,把SLC Cache中的数据“搬运”到TLC的过程就是merge。
通常时候SLC Cache的释放一般都会是在SSD闲置的时间自动进行,但是当有一个足够大的文件连续写入达到TLC直接的阈值,那么也会引起SLC Cache的释放,即同时存在merge和TLC的直写。当一个人一心二用的时候,工作效率会降低,同样的道理,当进入第三阶段,SSD的性能会相对第二阶段再度下降。
最后,我们聊了SLC、MLC、TLC在工作模式上的区别,聊了SLC Cache目前比较流行的两种形式,聊了写入三阶段,其实总结起来就是SLC Cache是成本和性能相互妥协平衡的产物,SLC Cache提升了TLC固态产品的使用感受,日常家用我们一般都只会遇到写入的第一阶段,而第二阶段只是偶尔遇到甚至遇不到,至于写入第三阶段,一般是遇不到了。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~





艾瑟依拉姆
校验提示文案
iceing2017
不要选 致钛tiplus5000 这样只有SLC Cache的入门水平固态
校验提示文案
天使在作怪
校验提示文案
冬去春来又一夏
校验提示文案
Zmsky
校验提示文案
值友5468374518
校验提示文案
scorpioozZ
校验提示文案
scorpioozZ
校验提示文案
值友5468374518
校验提示文案
Zmsky
校验提示文案
冬去春来又一夏
校验提示文案
iceing2017
不要选 致钛tiplus5000 这样只有SLC Cache的入门水平固态
校验提示文案
艾瑟依拉姆
校验提示文案
天使在作怪
校验提示文案