关于SSD模拟SLC缓存的释放恢复

现在(2024年3月9日)大量SSD被普及开来,每GB价格从1-2元降低到了0.3左右,同时很多SSD采用的TLC或QLC技术,芯片P/E寿命大幅度降低到500-600次。

普通消费者正常使用的话,每天擦写数据很难超过100G,一个512G的SSD足以支持7年以上的使用时间,即使电脑CPU和GPU性能淘汰了,硬盘SSD的芯片擦写寿命都还是充足的。唯一让人比较担忧的反而是SSD硬盘在缓存内和缓存外的速度差异可能带来的体验差异。

现在SSD多采用缓存技术,利用缓存超快读写速度覆盖日常使用的数据交互范围,提升使用体验。其中一项比较常用的技术就是模拟SLC缓存技术,通过主控芯片将TLC/QLC储存芯片模拟成SLC芯片,获得近似于SLC的读写速度。

模拟SLC会增加储存芯片的磨损,但对于提升体验的效果确实非常显著的,考虑到SSD寿命超出一般用户使用强度,比较SSD储存芯片在缓存内和缓存外的读写速度,以及缓存消耗之后的恢复速度就变得更为重要的。

在模拟SLC缓存容量范围内,SSD读写速度可以达到2000-7000MB/s的速度,超出模拟SLC缓存后,速度快速降低到1000MB/s,甚至500-600MB/s的速度,极端情况下可能降至200-300MB/s,接近传统的HDD机械硬盘的读写速度。

经过网友测试,模拟SLC缓存恢复速度还是比较快的,在日常使用中,只要不一次性写入超过缓存容量的数据,SSD始终可以保持模拟SLC缓存的超高读写速度,使用体验良好。

根据网友测试数据猜测:模拟SLC缓存恢复速度约等于缓存外读写速度的一半,即模拟SLC缓存使用后,SSD会在空闲时立刻开始把模拟SLC缓存消耗的部分按照TLC/QLC芯片的写入速度进行P/E(转存和擦除),转存擦除完成之后,SSD的模拟SLC空间就恢复。

参考资料:

探索SLC缓存释放方式
https://www.pceva.com.cn/thread-132686-1-1.html
作者:autume 发表于 2016-7-17 11:12

首先“吃完SLC Cache”写满缓存,然后用Idle项目插入一段空闲间隔,最后再次运行“吃完SLC Cache”,看看经过空闲之后SLC缓存是否已经释放完毕。

空闲间隔设定为15秒,SSD未能充分释放8G模拟SLC缓存,空闲后再次跑“吃完SLC Cache”项目时,128K持续写入的速度是188MB/s(≈TLC写入速度),SLC缓存没有释放好。

空闲间隔设定从40秒增至60秒时,SLC缓存逐渐可以使用,但释放并不完全,测试到模拟SLC缓存空间没有达到SSD标称的8G,测试后期转为TLC速度。

空闲间隔设定为70秒后,SLC缓存基本释放完全,但相比第一次大数据写入时的SLC缓存要稍微小一些。

此后继续增大空闲时间也不会起作用了。基本上按照70秒释放时间,释放8G模拟SLC缓存,约等于114MB/s,低于测得TLC写入速度(188MB/s)。猜测是因为释放缓存的过程包含了P/E两个动作,一个转存,一个擦除

另外,把Idle空闲改成读取,进行测试,发现读取会干扰SLC缓存的释放,如果模拟SLC缓存耗尽后,机器持续进行数据读取,模拟SLC缓存的恢复也会受到影响。同样猜测,这是因为前面提到的模拟SLC缓存释放包含P/E两个动作的缘故。

详细测评见原文。