PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

从三星840Evo所谓的旧数据读取性能修复工具看本质 - 补完

[复制链接]
跳转到指定楼层
1#
neeyuese 发表于 2014-10-21 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:48804|回复数:99
这次三星840Evo的旧数据读取性能降低问题隐藏的比较深,直到产品即将退市才被用户爆出。其实上一代840的产品也有类似问题,只是三星不愿官方承认罢了,固件修复的机会应该也渺茫。正好我手边有块1TB的840Evo,乘着这个机会也来升级下新固件,恢复下旧数据“性能”吧。

自从爆出问题以来,有编程能力的爱好者也自己开发了一些测试小工具,用来比较SSD内部不同时期文件的速度。例如下图:





这是我的840Evo 1TB的测速,看上去并没有性能降低,这是因为我这个系统刚装2个月不到,而且大部分固定数据都没放在里面。

下面我将会按照三星的要求一步步进行旧数据“性能恢复”。




不过在此之前我还是习惯性的备份数据。

数据备份完,从三星官网下载了840Evo系列SSD“性能恢复”工具,执行后得到下图:



可以看到一共分3部,上来是先升级固件到最新版,升级完后软件会让系统关机。



再次启动机器后,进行第一步的操作。这时候软件到底在后台做什么呢?



系统资源管理器里看到SSD并没有明显读写量,占用率也是0%。这就奇怪了,我下意识的开启了Intel IPEAK套件的监视器,想把这部分记录给完整记录下来,看看三星到底在捣鼓什么。



这里可以看到进行到第二步时,SSD占用率开始上去了,硬盘灯常亮,但是读写量并不高呀,但是系统卡卡的。说明三星的软件在后台对SSD进行大量操作,但是操作系统不知道。



全部结束后,读写量依然不大,虽然耗时40分钟,但是系统资源监视器里显示的读写量基本都是在几百KB/s附近。

三星说,运行此款性能恢复工具建议至少保留10GB的可用空间。这是为什么呢?既然三星突破文件系统让SSD后台操作,那么就让我把Intel IPEAK在驱动底层监视的整个40分钟数据调出来看看。





原来在这41分钟里,数据总共移动了9.10GB(其中读取了6.86GB,写入了2.24GB。)大量的缓存释放操作造成了硬盘灯常亮,系统卡顿。中间这部分(第二步)这不就是一次磁盘整理操作么?由于我的系统盘原本性能就没有跌,而且空闲空间90%,因此数据量不大,速度还是较快的。





国外网上有用户表示,他的120GB 840Evo基本用满,性能也跌到惨不忍睹,性能恢复过程用了好久,结束后性能恢复了,但是写入增加了120GB。出处:http://forums.overclockers.co.uk/showthread.php?t=18629993&page=3

偶然的机会,我还看到了不止一个用户使用此工具恢复旧文件读取性能后出现扫描坏块。还好我有备份的习惯…
http://www.sweclockers.com/forum/52-nyhetskommentarer/1327503-samsung-rattar-lashastighetsproblem-i-ssd-840-evo/index5.html#post14940381









不管如何,这已经是过去的事了,三星840Evo即将退市,三星850Evo快上市了,而且聪明的三星应该也乘此机会对850Evo的类似问题进行了测试,不然如何口口声声说850Evo不会有类似问题呢?反正840用户是别想了,自己每间隔段时间就手动整理下SSD吧,不完全是为了读取性能的恢复,而是为了你的数据安全着想。我这里给个工具软件可以用来整理,见



上图来自本次三星发布的旧数据恢复工具说明书PDF文件第16页,可以猜到三星会测试850Evo有没有类似问题。

好啦,上面这些都是表面文章,到底这个问题是怎么回事?三星这次真的能靠这个工具完全解决这个问题么?下面让我来脑补下吧,没办法,三星也不会告诉我细节对吧。

1.三星的新固件能否修复这个问题目前判断的话为时过早,但是从原理来说固件升级是可以解决这个问题的,当然有不小的代价,这个我后面会说。

2.此款工具升级完固件后直接在后台发指令给SSD进行内部碎片整理,碎片整理的速度则取决于盘内数据块的性能和剩余空间的大小。换句话说,用户运行完性能恢复了的功劳应该归功于碎片整理。但是碎片整理是治标的,不升级固件我们自己也能做。治本的固件升级效果我们等几个月大家都傻着去买850Evo的时候再说吧。对了,到时候也顺便看看chipworks拍的850Evo内部Die标和850Pro是否一样吧。

3.做为跑分著称的三星SSD 840Pro/850 Pro在跑入门级基准测试时候尽可能不做垃圾回收,让主控释放出全部能量跑分,这样才能在大家都被SATA 6Gbps总线速度拖成瓶颈的情况下靠些许延迟拉开极限上的差距。三星840Evo跑分王也自然没有XOR等冗余机制的保护,因此旧数据在碎片整理的时候如果没法正确读取,那么就会出现数据出错的可能,就是上面的HDtune坏块那样,盘虽然可以靠做一次SE恢复,但是用户数据已经出错了,没法恢复,所以对数据完整性敏感的用户慎选较新工艺却不带冗余保护的SSD产品。

---------补完部分------------

针对三星840Evo旧数据掉速的原因,三星官方给pcper网站如下的说明:

Because of an error in the flash management software algorithm in the 840 EVO, a drop in performance occurs on data stored for a long period of time AND has been written only once. SSDs usually calibrate changes in the statuses of cells over time via the flash management software algorithm. Due to the error in the software algorithm, the 840 EVO performed read-retry processes aggressively, resulting in a drop in overall read performance. This only occurs if the data was kept in its initial cell without changing, and there are no symptoms of reduced read performance if the data was subsequently migrated from those cells or overwritten. In other words, as the SSD is used more and more over time, the performance decrease disappears naturally.  For those who want to solve the issue quickly, this software restores the read performance by rewriting the old data. The time taken to complete the procedure depends on the amount of data stored.

出处:http://www.pcper.com/reviews/Storage/Samsung-840-EVO-Performance-Restoration-Tool-preview-Getting-EVOs-back-speed

粗略翻译下:

因为840 Evo上面的闪存管理软件架构存在问题,导致SSD上存放的旧数据性能降低。通常来说,随着时间的流逝,闪存管理软件架构会校准并改动每个存储单元的状态。但是因为这个闪存管理软件架构存在的问题,840 Evo会一直去频繁的尝试读取重试操作,造成了总体读取性能的下降。这个问题只发生在当数据自写入后一直保持初始状态并一直没有被改动的情况,也就是说如果数据被随后的操作移动或者改写,那么读取性能就不会被降低。换句话说,如果SSD上的数据改变的越频繁,那么性能下降就自然不见了。对于那些想快速解决这个问题的用户,这个软件会改写旧数据来帮助恢复读取性能。至于此操作需要的时间则取决于用户存放的数据量。

--------------------------

让我们根据三星发布的程序所做的操作并分析这段话内部隐含的意思:

1. 三星840Evo之前的固件存在闪存管理架构的缺陷,导致旧数据性能降低。 三星当然不会告诉你是什么错误,那么继续让我脑补下。

A. 三星的闪存管理架构确实存在缺陷,反映在无故频繁的读取重试操作上。

B. 三星的闪存管理架构确实存在缺陷,反映在为了省P/E而宁可不搬运旧数据导致出现Data Retention(数据保存期)问题,导致读取错误增加,需要多次尝试频繁读取重试操作才能勉强读取。

2. 三星此次的程序通过改写旧数据来帮助恢复读取性能,效果肯定立竿见影(建议备份重要数据再做操作)。 - 但是最终有没有改善要等时间来说明这次固件的更新有没有修复,不过那时候大家的注意力应该已经到850 Evo上去了,至于840 Evo还有没有问题,如果问题依然还在怎么办?看下三星是如何对待840用户的就知道了,死不承认并且没有任何固件修补。 在我们面前最好的例子就是本坛用户:狮子王。 链接:http://bbs.pceva.com.cn/thread-98962-1-1.html

--------------针对上面B的情况深入脑补分析 - A的情况没法分析,那是三星自己固件SB了  -------------



上面是典型的SLC,MLC,TLC的闪存单元电压的状态分布,TLC需要3次编程来表示8个状态(MLC是2次,SLC是1次)。可以看到TLC每个状态的间隔相比MLC已经要小的多,更不用说去和SLC来比较了。

Data Retention(数据保存期)的影响:打个比方,某个数据在闪存里写入时为图里TLC的最右边一个状态,随着时间的推移,因为漏电(往左偏移)和邻近闪存区读取与编程、擦除干扰(左边和右边偏移都有可能)的关系,这个波形会一点点偏离原本的位置,如果偏移到右边数过来第二个状态的话就造成了数据出错,在读取的时候需要依靠ECC算法来检测和发现并修复这个错误,如果错误太多的话,ECC就没法正确修复(更差的情况是检测都检测不到,变成了静默错误)。此时主控知道数据已经出错,但是ECC没法去正确修复,则会尝试调整读取电压,比如像图中这样往右偏移来降低错误率,如果错误率降低到足够被ECC算法修复的话数据就能够被顺利读取。如果有SandForce的RAISE,美光的RAIN等XOR算法,多次读取重试依然没法纠错的话,还可以依靠XOR算法恢复用户数据。


正式脑补: 三星因为担心TLC闪存的P/E,特意降低数据搬运的频率来减少写入放大。(如果你认为这次的旧数据读取性能下降是不可接受的大问题,那么之前网上对三星840 Evo的耐久度测试结果可参考值就下降很多了。)但是对于旧数据来说没有在合理周期内被搬运,因为漏电和临近数据读取与编程、擦除干扰,导致电压偏离原本位置,读取时候出错率大增,需要依靠尝试各种读取电压的微调来把错误率降低到主控ECC纠错范围内。(因为三星不支持XOR算法,没法直接恢复数据)由于数据被频繁重试读取,造成了读取性能的大幅度降低。

脑补总结:

1. 新写入的文件(刚被搬运的文件)肯定在SLC Cache区域内并且是连续存放的,因此读写性能都很强,这就是基准测试软件“跑分王"的由来,因为基准测试软件在测试前会先生成一个小范围的测试文件,正中SLC Cache算法下怀。
2. 旧文件存放久,首先肯定会是存在TLC区域里,TLC的访问会比较慢,但是不会慢10倍那么离谱。
3. TLC的Data Retention(数据保存期)不好,读的时候需要用各种电压微调手段来纠错,造成速度大幅度降低。
4. 关于上面第三点,为什么读取重试会造成那么大的性能影响呢?假设一笔数据纠错不出来,则会进主控Error Handle模块,换个电压再读取一次,此时就是两次tRead(数据读取时间),Error Handle模块的函数一般都不是并发的,就是说连续2个Page的数据纠错不像平时是并发读取,而是很可能处理完一个Page再处理第二个Page。过程就会是这样: Page 1,2,3 并发读取,全错, Read Retry Page 1 -> Read Retry Page 2 - > Read Retry Page 3,那么总共就是4个tRead,如果1次Retry出不来,还会有第二次,多次tRead的话读取性能自然就相比平时而言成倍下降。






本帖子中包含更多资源

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

x

评分

参与人数 3活跃度 +11 收起 理由
frontwing + 5 很给力!
iFive + 3 Intel dafa is good,buy buy buy...
bssharp + 3 淫特大法好,退*保平安

查看全部评分

2#
badaa 发表于 2014-10-21 21:53 | 只看该作者
只用过830.。。反正以后也不买3*

16年3Dnand带领大容量普及吧
3#
石头 发表于 2014-10-21 22:00 | 只看该作者
哈哈,“聪明的三星”,浴室这可是在称赞棒子哟……

一个常年累月靠诋毁竞争对手刷存在感的品牌,当自己产品被爆出问题时,那副嘴脸真是聪明到极点了……枪手给主子洗地的文章都说不清楚到底是什么故障……


-----------------------------------------
10月22日晚更新

4楼推测的“浴室脑补的对不对,看之后的水军表现就知道了”,显然说中了。他们的反驳已经无法就产品技术本身来说事,只能开始人身攻击。那么咱们就看看他们自证是如何诋毁别人的吧

本帖子中包含更多资源

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

x
4#
沙沙 发表于 2014-10-21 22:15 | 只看该作者
浴室脑补的对不对,看之后的水军表现就知道了
5#
lzf19750908 发表于 2014-10-21 22:29 | 只看该作者
这里有真相,看得过瘾,840EVO的用户被小白鼠了。
6#
fosullx 发表于 2014-10-21 22:47 | 只看该作者
棒子就是坑。。
7#
zerozhong 发表于 2014-10-21 23:16 发自PCEVA移动客户端 | 只看该作者
看看隔壁怎么洗地

点评

这点问题难不倒隔壁的三大金刚的~  发表于 2014-10-21 23:44
8#
111alan 发表于 2014-10-21 23:17 | 只看该作者
目前市面产品来说,asssd跑分与ssd综合素质成反比
9#
Mufasa 发表于 2014-10-21 23:31 | 只看该作者
普通840看来是没戏了。

我把旧数据覆盖写入了一遍。。。。
10#
dvcam 发表于 2014-10-21 23:31 | 只看该作者
原先我担心的SSD上NAND的retention问题,到了TLC终于出现了。
11#
zxy356 发表于 2014-10-21 23:44 | 只看该作者
本帖最后由 zxy356 于 2014-10-21 23:46 编辑

天凉了,昨天打开一个很久没有玩的单机游戏“火炬之光”(六个月估计有),黑屏很长时间,大楷一分钟的时间才进入游戏里。840 120G,笔记本平台,常玩的网游则没有这个问题。

本帖子中包含更多资源

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

x
12#
frontwing 发表于 2014-10-21 23:50 | 只看该作者
三星SSD一直不错的,楼上都是故意黑,老板,给我来块520!

点评

你是想说这个梗吗:“三星的产品都是很Nice的,这其中一定有什么误会”  发表于 2014-10-22 14:39

评分

参与人数 2活跃度 +10 收起 理由
mavis_07 + 5 老板,给我块520~
wyw19902006 + 5 求这个梗出处

查看全部评分

13#
gyp2000 发表于 2014-10-21 23:53 | 只看该作者
产品爆出问题这很正常,关键是厂商有没有诚意去解决问题。

至于三星卖给消费者的是一坨屎还是一个合格的产品。这都不是几个帖子能解决的问题。
购买TLC颗粒的SSD要慎重,尤其是对数据安全要求高的用户。
目前根据用户测试TLC颗粒的寿命表面上看是非常乐观的。
但是数据存储的可靠性远远低于MLC颗粒。。

TLC长时间存储后降速,这只是表面现象,更深层的问题是数据存储不可靠,这才是问题的根本。
这个问题和MLC满盘后速度下跌的性质是完全不同的。。
14#
iFive 发表于 2014-10-22 00:01 | 只看该作者
111alan 发表于 2014-10-21 23:17
目前市面产品来说,asssd跑分与ssd综合素质成反比

这也不一定~
某分享牌的SSD,主控渣→性能渣→AS SSD跑分渣,再加上一个颗粒渣,整体素质渣渣渣~
15#
啊哈~ 发表于 2014-10-22 00:13 | 只看该作者
一直对tlc无好感。。果然棒子星玩脱了。。
顺便问个问题,浴室大大,我想问问现在me3的520 240版本和东芝q pro 256版本相比,520值得买吗?
16#
forplay 发表于 2014-10-22 00:31 | 只看该作者
手上主力使用840pro 512G版本,会不会出现这个问题?是否能再战3年?
17#
az6338890 发表于 2014-10-22 02:00 | 只看该作者
tlc就是tlc...跑分再高本质变不了
18#
evev 发表于 2014-10-22 02:31 | 只看该作者
本帖最后由 evev 于 2014-10-22 02:54 编辑

既然三星规划要搞TLC 不能出MLC入门产品 那么我们三五年内不去考虑这个品牌就是~
19#
xiaokejian 发表于 2014-10-22 07:48 | 只看该作者
自从棒子出了假内存事件后,再也不碰棒子的任何产品。
除了T400上的本本屏幕,这个真没办法。
20#
hjf896 发表于 2014-10-22 08:00 | 只看该作者
手上三爽的SSD只有830,其实对速度没多少要求,只求稳定,也不知道买个什么好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部