PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

SLC Cache优化还能这样玩,一起来看程序猿的脑洞

[复制链接]
Essence 发表于 2019-3-29 10:32 | 显示全部楼层 |阅读模式
点击数:1995|回复数:12
大家好,XPG S11 Pro评测的番外篇来啦。每当一块固态硬盘送到评测室,小编最关心的就是它的SLC Cache模式。在属于TLC/QLC的时代,SLC Cache是每一颗固态硬盘不可或缺的一部分,它的设计策略会在很大程度上影响一颗固态硬盘的“脾性”。

小编在这段时间测试XPG S11 Pro又有了新的发现,一起来了解下老生常谈的SLC缓存又玩出了怎样的新花样。

不同状态下SLC缓存容量:

在评测一文中我们已经简单了解到:空盘状态下的XPG S11 Pro 512GB拥有最高76GB的SLC缓存。盘内占用从128GB一直到224GB的阶段,SLC缓存容量均为56GB。



用TLC闪存模拟SLC使用,虽然能起到提升写入性能的作用,但也会超额占用闪存空间。1MB的数据以SLC模式写入TLC闪存,实际会占用3MB的空间。这就仿佛玩俄罗斯方块,无脑按下落键的话游戏速度是最快的,但却会浪费空间。



尤其是全盘SLC模式的情况下,SLC缓存会侵占OP以外的用户空间:一旦缓存写爆往往意味着此时闪存里已经没有空白块了,但固态硬盘还必须继续接纳新的数据写入请求,完成对自己可用容量的承诺。接下来这个边释缓存边进行写入的过程中性能损失会非常严重。

XPG S11 Pro 512G稍微限制了SLC缓存对闪存空间的占用,控制鸡血过后的副作用伤害。在盘内空间使用少于一半的情况下依然能够提供不少于56GB的SLC缓存空间。盘内空间使用超过一半之后,XPG S11 Pro将转换为固定SLC模式,固定SLC缓存容量为5GB左右。

持久缓存模式:

在去年的那一代固态硬盘(Intel 760p、浦科特M9Pe和XPG S11)中我们首次发现了持久缓存的存在。与前辈们相比,XPG S11 Pro也拥有持久缓存,并且容量更大了。


即专门为随机读取而优化的SLC缓存部分。这部分SLC缓存默认情况下不会随着写入的停止而立刻释放为TLC形态,即便是关机和重新开机也不受影响。复习链接:http://bbs.pceva.com.cn/thread-141698-1-1.html

使用Txbench对XPG S11 Pro 512GB的持久SLC缓存进行验证。依然是选择4K单线程随机读取这项最直观的项目来看缓存有没有发生闲置后自动释放。



Txbench的测试脚本分三段,前后两段是完整测试容量的4K QD1随机读取测试,中间一段则是600秒时长的空闲等待。



我们知道空盘下有76GB的SLC缓存空间,但通过测试可以看到,76GB并非全部由持久缓存组成,有一部分缓存会在空闲过后自动释放,显示为第二次4K QD1随机读取测试的成绩下滑(有一部分数据空闲时间过后已经释放成TLC形态,TLC的读取延迟比SLC高,测试结果就会下滑)。



多次验证后我们发现,在0(空盘)至256GB盘内空间占用的情况下,大约有超过50GB的SLC缓存容量是属于持久缓存的。在因为空间不够而被迫释放之前,它们可以有效的提升硬盘随机读取效能。



在XPG S11 Pro 512B上进行一次PCMark 8存储测试,大约会产生50GB的硬盘写入量。这样我们就不难理解它的PCMark 8成绩会达到5110这么高了,因为测试过程中无论写入还是读取操作,都是针对的SLC缓存内的数据。



在盘内使用容量超过半盘(256GB)之后,XPG S11 Pro 512GB的SLC缓存空间降至5GB,而且全部属于持久性缓存。只不过5GB的容量相比56GB小了很多,所以更容易因为写满而被迫开始释放。


即便只有5GB的持久缓存,XPG S11 Pro 512GB此时的使用性能表现还是超过了去年的XPG S11 480GB以及Intel 760p 512GB。


总结:

SLC缓存的出现对于TLC/QLC闪存时代是一个必然。SLC缓存不仅解决了写入爆发力的问题,同时也降低了闪存编程的复杂度。在此基础上,编制主控固件的程序猿还开发脑洞,发展出了利用SLC缓存顺带提升读取效能的方法。

利用SLC缓存提高读取速度最早被发现在三星840Evo身上,不过当时的SLC缓存依然是写入停止后自动释放的,所以只能骗过一些在写入后不停歇马上就测同一数据块读取速度的快餐跑分软件。而从去年开始出现的持久SLC缓存则采取了在条件允许时保留部分缓存内容的方式,提高了SLC缓存在加速随机读取时的实用性。

总的来说,XPG S11 Pro 512GB上搭载的SLC缓存算法又一次进步了,持久缓存的容量更大,能够起到的作用更加明显。虽然SLC缓存不能真的“点石成金”把TLC变成SLC,但针对家用环境下的硬盘使用特点,切实提升了3D TLC闪存用于家用固态硬盘的效能表现。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1绝对值 +1 收起 理由
jackyi + 1 赞一个!

查看全部评分

eterfinity 发表于 2019-3-29 10:46 | 显示全部楼层
本帖最后由 eterfinity 于 2019-3-29 17:32 编辑

提供一下中高端存储raid10 cache 逻辑供对比:

存储对硬盘区块抽象化   设置为raid10 与 raid5/6/或三校验  两个动态区域

数据写入时  根据策略选择raid10 或校验模式

如果已分配的raid10写满 又无法扩充 则先借用校验区域的可用容量  等待存储OS后台搬运   反过来也成立

全机械盘系统快道区域4kQD32轻松达到25000iops,当然是靠数量怼出来的  延迟比较差

怎么样  是不是与SSD算法很像呀
优先保证写入平滑度  又兼顾稳定性  且一定程度下读写分离



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
eikeime 发表于 2019-3-29 10:58 | 显示全部楼层
本帖最后由 eikeime 于 2019-3-29 11:01 编辑

算法设计的科学的 tlc 大容量ssd,完全可以当作 一个 分层存储外加热数据优化过的 slc+tlc存储池对待了呗
nighttob 发表于 2019-3-29 11:12 | 显示全部楼层
eterfinity 发表于 2019-3-29 10:46
提供一下中高端存储raid10 cache 逻辑供对比:

存储对硬盘区块抽象化   设置为raid10 与 raid5/6/或三校验  ...

应该说SSD玩的是SAN存储已玩烂的这一套
但到全闪上面又是另外一回事了

gloobox 发表于 2019-3-29 11:18 | 显示全部楼层
容量使用一半之后只能5g有点少,变成原来的10%的cache了。
如果可以有一个阶梯式的方案,这样也许更加实际一些。但也是个人的胡思乱想而已
来自安卓客户端来自安卓客户端
Atom 发表于 2019-3-29 16:18 | 显示全部楼层
持久缓存,有点类似存储的热备冷备
yhhuada66 发表于 2019-3-29 16:30 | 显示全部楼层
这么大容量的持续性缓存,是不是对pcmark8这样的测试软件来说也算“作弊”了?这个只是随口一说,不过有这么大的缓存容量,日常使用肯定是感觉很好了
dubai 发表于 2019-3-29 16:54 | 显示全部楼层
hp-920估计也是这路数。
来自苹果客户端来自苹果客户端
tualatin 发表于 2019-3-29 17:10 | 显示全部楼层
这个做法感觉和傲腾+QLC有点像啊
string 发表于 2019-3-29 20:40 | 显示全部楼层
tualatin 发表于 2019-3-29 17:10
这个做法感觉和傲腾+QLC有点像啊

是挺像,不过傲腾那个是双核分开,还需要电脑端安装软件才能实现。这个可以在SSD内完成了。

string 发表于 2019-3-29 20:43 | 显示全部楼层
dubai 发表于 2019-3-29 16:54
hp-920估计也是这路数。

应该跟EX950差不多(都是SM2262EN),EX920对应的是S11(S11 Pro上一代)

string 发表于 2019-3-29 20:45 | 显示全部楼层
yhhuada66 发表于 2019-3-29 16:30
这么大容量的持续性缓存,是不是对pcmark8这样的测试软件来说也算“作弊”了?这个只是随口一说,不过有这 ...

正方:肯定是作弊,整这么大容量不就是冲着PCMark 8去的。。其实Intel 660p(SM2263主控)就已经能看出慧荣这种苗头了,PCMark 8分数高的惊人,实际上不用拍脑袋也知道QLC是什么德行。

反方:不管白猫黑猫抓住老鼠就是好猫。这东西是有实际价值的,不好全盘否认它的作用。

看你怎么想了

rockwars 发表于 2019-3-30 01:32 | 显示全部楼层
string 发表于 2019-3-29 20:45
正方:肯定是作弊,整这么大容量不就是冲着PCMark 8去的。。其实Intel 660p(SM2263主控)就已经能看出慧 ...

支持反方
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部