数码之家

 找回密码
 立即注册
搜索
查看: 13337|回复: 14

[SMI] 关于SM2258xt全盘模拟SLC cache写入机制的研究,颗粒制程:B16A,固件:Q0816C0

[复制链接]
发表于 2019-10-30 09:09:34 | 显示全部楼层 |阅读模式
本帖最后由 fanallen 于 2019-10-30 14:36 编辑

昨天发表了一下个人对SM2258xt全盘模拟SLC cache的见解
https://www.mydigit.cn/forum.php?mod=viewthread&tid=89975

然后好多热心坛友留言,也发表了精彩的个人看法。

昨天晚上,本人一时兴起,拿一块现成的58xt配3D TLC的盘,实际研究一下,看真实的写入机制是什么样的。

主控:SM2258xt
颗粒:1ce B16A 32G*8  开180G(坏块太多,降容到180G:titter:)
测试系统:win10 企业版LTSC
测试接口:SATA3.0

为了保证测试效果更客观,更直接,直接先把此盘重新开卡

指定180G容量开卡,固件:Q0816C0


初始化完直接开始写入数据

实际写入在68G左右开始掉速。
68G容量,已经超出了我ssd容量的1/3了,依此来看,SLC cache的总容量,不是你开出来的ssd容量的1/3,而是所有可用数据块的SLC cache,包含留出来的OP空间。
比较奇怪的是,写满SLC cache后,用软件检测的NAND写入量还是0。然后今天早晨看上一贴的留言,飞机哥@1169044503说:IM系列颗粒上的slc部分是真slc,datasheet上有写明。只是slc空间部分写爆后才会把数据挪到tlc部分,来释放高速空间。如果留意过rdt上面slc部分是能单独测试的。

看来飞机哥的说法有考证的。


在昨晚19:39分,也就是写满SLC cache后一小时,想继续写入,观察下速度变化,看用掉的slc cache有没有回收,然后发现urwtest检测到固态上测试数据,不再写入,而开始检测。然后本人换成h2wtest继续写入测试,然后发现h2wtest显示平均速度,不显示即时速度,写入6G左右直接关掉了,开始干别的事情。


昨晚睡觉前,把这块盘再次连到电脑上,电脑开着机挂着就不管了。睡下后,又想了想urwtest的事情,如果我把写入到固态盘里的测试数据改个名,程序会不会找不到测试数据,然后可以继续写入呢?

早晨醒来,开始实践。

把测试数据全部重命名。


然后用urwtest继续写入,时间7:30。


4G高速写入后,就掉速了。看来和本人昨天帖子的说法不一样。本来以为会把剩余的所有容量的slc cache全部回收回来,看来不是这样的。然后又发现,在4G的cache用完后,写入速度偶尔还能跳到400M

感觉开始直写flash了。

8:28,到公司后,再次写入。


这次3G高速后就掉速了,比早晨还少了1G,难道是时间太短了,还没回收充分?


9:03,再次写入


这次更少了,只有2G的高速状态,可能是时间太短了,多等会儿试试。

10:03更新,再次写入
4G cache 400M+写入,4G后开始波动,16-430的波动区间。


14:34更新,已经全部写满。



NAND写入量已经慢慢追上了主机写入量,估计再有擦除+写入,放大情况就开始显现了。



至此,58xt配B16A在Q0816C0固件下的写入机制基本搞清楚。
1、全盘SLC cache内(约1/3容量),不掉速。
2、只写SLC chche时,不算作NAND写入量。
3、全盘容量用掉1/3后,开始掉速,并且会在ssd空余时间回收cache,但不是全部回收。每次回收大约4G左右的cache空间,这4G cache用完后,速度开始大波动。
4、cache回收速度大约是4G/小时的样子。

本人仔细想了一下,固定回收4G cache,而不是全盘回收,有可能是抑制写入过度放大。如果每次做全盘回收,写入放大倍数过大,势必会大大影响闪存寿命。采用这种固定收回4G的方式,在寿命与速度(体验)之间做一个平衡的取舍,也算是较为合理的折中方案了。
不同固件的算法不一样,本次测试仅适用58xt+B16A,固件Q0816C0。其它制程的颗粒,或者同制程在其它固件下的写入机制,也欢迎各位热心坛友分享出来。



本帖子中包含更多资源

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

x

打赏

参与人数 2家元 +38 收起 理由
山石科技 + 8 認真發帖
家睦 + 30

查看全部打赏

发表于 2019-10-30 09:46:02 | 显示全部楼层
真的开始写入flash了:biggrin:
回复 支持 反对

使用道具 举报

发表于 2019-10-30 12:08:38 | 显示全部楼层
飞机哥说错了,这部分SLC不是真SLC,真的不是SLC的,就是TLC当SLC用,8bit分成2bit,000 001 010 011当00、100 101 110 111当01、规格书里面说的SLC PE次数就是指运行在SLC模式下时标准ECC纠错下的PE次数、

如果你买过 士必得的特定型号SSD,他家2258XT用的定制版固件,在B16 B17 B27上面不是全盘模拟SLC的,是大概4GB的空间是SLC Cache、而且SLC cache过后的写入速度能基本保持40MB/S的直线(小幅波动但是不会低于20MB/S)
具体型号是 士必得T6-120 PLUS,固件版本R0817A0 晚上我会发帖拆机和评测(不是打广告!!!!大家不要买这个牌子!!!)
回复 支持 反对

使用道具 举报

发表于 2019-10-30 13:08:35 | 显示全部楼层
本帖最后由 技术宅小唐 于 2019-10-30 13:09 编辑

先上样品SSD,
士必得T6- 120 PLUS
固件版本 R0817A0

生产时间190617

下面开拆




2258XT + NW913,料号29F01T08EMHAFJ4  正片,不是后打标、TLC,单颗4CE  128GB  BGA132封装

想看ID,手里没有转接卡(暂时找不到-.-),就用慧荣的识别工具看看ID吧


ID是 2C A4 08 32 A1 00、
对应制程是 B16A

===============================================================================
看看信息,通电1000小时,NAND写入比主机写入量要大、当场推翻先写入SLC再写TLC的论据、



关键是,竟然是128G的??不是120G??

正片容量大,开满128G了(119.24G、实际能开到137GB)

这个版本固件没有流出,按照固件版本后缀是+字母数字的方式来看,101%是定制的版本

上个跑分


开心模式还不错=================================================================
今晚再更,工作忙一下...




本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2019-10-30 16:18:00 | 显示全部楼层
58XT就别折腾了,这主控4MLC写还是一坨,我有惠普M700,4个UFS组成,依然会掉速到几十第一款会使用人为感知卡顿的固态主控,
回复 支持 反对

使用道具 举报

发表于 2019-12-23 21:21:17 | 显示全部楼层
技术宅小唐 发表于 2019-10-30 13:08
先上样品SSD,
士必得T6- 120 PLUS
固件版本 R0817A0

请问一下技术大佬,为什么正片能开到137G,怎么会多出来那么多的容量,如何测试最大容量,这块盘开128G,能开137G,固件能否识别剩下的9G做冗余,实在是搞不懂,谢谢啦
回复 支持 反对

使用道具 举报

发表于 2019-12-24 10:04:48 | 显示全部楼层
最近也在研究58XT的模拟slc算法,自己试验用了一块480G tlc,看看日常使用感受 以及长时间使用后的写入数据目前还没发现写入放大,但是我支持楼主的测评,存储多了掉速验证,而且我用电流表测试过,大文件写入后,硬盘会自动进行整顿,文件写入结束,硬盘电流还在高负载状态,我试过是空盘写入了5GB后,大约需要20分钟电流才能降下去

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-24 10:37:53 | 显示全部楼层
山石科技 发表于 2019-12-24 10:04
最近也在研究58XT的模拟slc算法,自己试验用了一块480G tlc,看看日常使用感受 以及长时间使用后的写入数据 ...

放大肯定是放大的,短时间内读写大文件还不太会显现出来,做为系统盘用一段时间后,放大就会显现了,而且越到后面越明显。
期待你分享后期的使用体验。
回复 支持 1 反对 0

使用道具 举报

发表于 2019-12-24 18:51:33 | 显示全部楼层
我有惠普S700,定制主控应该也是2258吧?
回复 支持 反对

使用道具 举报

发表于 2019-12-30 13:43:37 | 显示全部楼层
fanallen 发表于 2019-12-24 10:37
放大肯定是放大的,短时间内读写大文件还不太会显现出来,做为系统盘用一段时间后,放大就会显现了,而且 ...

2019.12.30日,这算法在前期优势明显,看来楼主的猜测几乎可以确定,写入模拟区的,不计入写入NAND,后期模拟满了或者坏道多了,写入出现放大

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2020-3-22 22:04:38 | 显示全部楼层
我有个B16A,不稳定。
关掉SLC 重新开卡了。
速度优势还是没有稳定性重要。
哪个盘自己电脑用了1年多。
感觉58XT坑挺多的。
SLC缓存模式是可行的。
但是算法和固件的稳定性更重要一下吧。
手头已经挂了几块58xt 的固态了。
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-1 10:37:02 | 显示全部楼层
mao1990 发表于 2019-10-30 16:18
58XT就别折腾了,这主控4MLC写还是一坨,我有惠普M700,4个UFS组成,依然会掉速到几十第一款会使用人为感知 ...

此时的ufs已经屏蔽内部控制器当普通闪存用了,所以和普通闪存的表现一样
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-1 12:33:49 | 显示全部楼层
SLC CACHE的本质还是把TLC空闲的容量拿出来模拟SLC 当你容量不足了 你就知道这玩意的本质了   这个功能就是利用TLC QLC的大容量优势去弥补速度的缺陷  如果直接给你全盘全容量模拟 夭寿是肯定的  还有就是SLC CACHE需要主控有很强的ECC校验能力   
回复 支持 2 反对 0

使用道具 举报

发表于 2020-4-1 23:19:57 | 显示全部楼层
山石科技 发表于 2019-12-30 13:43
2019.12.30日,这算法在前期优势明显,看来楼主的猜测几乎可以确定,写入模拟区的,不计入写入NAND,后期 ...

用SLC Cache的方式写入,后续固件会等机器空闲状态进行整理搬运数据的,此时重新读出原来SLC方式编程进去的数据,然后按照TLC编程方式写入空闲的页中,这个时候就是计入了写入NAND的写入量(反而此时不计算主机写入量)。新盘因为很多块都是空闲的,所以不需要各种搬运,所以基本没有什么放大。但是使用时间长了,加上磨损均衡等还需要主动搬运,所以写入放大越来越...不过我认为这个不是什么事,写入放大不能说明什么

所以无论你写入多少,除非你没等搬运就删掉,否则迟早都会用TLC模式写到NAND里面的。SLC Cache就是为了满足人们对速度的追求

回复 支持 1 反对 0

使用道具 举报

发表于 2020-9-28 23:38:42 来自手机浏览器 | 显示全部楼层
技术宅小唐 发表于 2019-10-30 13:08
先上样品SSD,
士必得T6- 120 PLUS
固件版本 R0817A0

这固件磨损均衡不行啊,最大7F(127)最小3
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-25 14:39 , Processed in 0.124800 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表