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

拨开迷雾寻找真相!OCZ Vertex 4系列固态硬盘深入评测与解析

  [复制链接]
跳转到指定楼层
1#
neeyuese 发表于 2012-7-11 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:60980|回复数:145
文章开始前先引用下Tom's Hardware 针对OCZ Vertex 4系列掉速现象的分析和解释,因为这也是我考虑去买块OCZ Vertex 4 128GB研究下算法的因素之一,好奇心驱使,另外是想验证下OCZ官方的说法到底靠谱不。



这段6月27日OCZ官方给Tom's的解释我胡乱翻一下:

针对Vertex 4 搭配最新固件的表现,OCZ 提供给了我们一份官方声明予以澄清。我们(指Tom's)尚未确认Vertex 4 在“性能模式”和“储存模式”间来回切换需要多少时间:

在开发1.4 版固件之前的相当长一段时间里,OCZ收集着来自它们选出的测试案例用户数据使用习惯和资料存储的模式,它们希望结合这次固件更新更直接的解决一些问题。它们发现大部分的用户SSD往往留有大部分未使用的空间,这些用户利用SSD作为系统盘、数据盘,或只是存放对性能有要要求的应用程序。在1.4 版的固件中,OCZ 利用了这些调查结果,针对垃圾回收功能做了优化,以便为这种类型的使用者提供可以大幅提升SSD性能的固件。这意味着那些没用到一半容量的SSD,可以享受到进一步性能的提高,并且在SSD使用超过一半的容量时,垃圾回收功能算法会根据数据的使用频繁度重新最佳化。在这段转换期间可能会有些许延迟,但这属于单一事件,而且整体性能回快速回升,这样做可以进一步提升我们客户群体的SSD体验。

原文地址:http://www.tomshardware.com/revi ... rformance,3235.html

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

看完上面这段官方的回复,下面用我对这几天测试下来的结果,解析OCZ VERTEX 4 系列固态硬盘1.4RC固件之后的提速原理部分。

我们知道闪存有SLC和MLC之分,当前在OCZ VERTEX 4系列固态硬盘上采用的闪存颗粒都属于MLC闪存。MLC闪存比SLC闪存慢,至于为什么慢?我这里解释下,搞懂了之后会让后面OCZ Vertex4系列固件提速原理更好的理解。



上图是SLC闪存和MLC闪存, SLC闪存可以表示状态“1”或者“0"就是1bit,而MLC闪存可以表示状态“11”,"10","00","01"就是2bit。 其中前面一个数字我们叫高位(Upper Page,MSB),后面个可以叫低位(Lower Page, LSB)。





MLC是如何读取的呢? 需要分2步走,先判断LSB,再判断MSB,总共需要读取2次或者3次电压判定才能得知正确的状态,所以造成读取延迟比SLC高大约2.5倍。不过由于NAND的读取延迟本来就不高,而且MLC相比SLC能多表示1bit,因此对SSD的全局性能起到的影响并不多,可以忽略。

相比读取,写入要复杂的多。





最简单的为编程状态“10",只需要加压超过0.3V就可以。(只编程LSB)
而高位编程分2种,一个是状态”00“,也是最耗费时间的一种,需要在前面编程为”10“的基础上再次加压超过1.5V。(写入更费时)。
另外一个是状态”01“,需要在状态”11“上直接加压超过2.8V来达到。
很明显编程MSB相比LSB需要更多的耗电和时间,这也是为何MLC功耗高,耐久度低,写入性能也比SLC低的关键。

每次编程改变1个状态后,需要立即验证之前的编程操作无误,当编程全部完成没有问题时,则发送编程结束指令,这样在接收到Block擦除指令前,不能再对当前Page进行编程了。

以上电压数值仅做参考,实际数值请参照颗粒的数据手册。

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

MLC闪存的”SLC操作模式“ - 如果把MLC闪存当成SLC闪存那样的操作模式进行使用,则可以让MLC达到SLC的写入性能。

理解了上一段落的朋友可以发现,只要我们在SSD的FTL里做一下手脚,写入时候只操作MLC颗粒的LSB部分,则可以拥有接近于”SLC的性能”。

那么很多朋友又会担心,如果只操作MLC颗粒里的LSB部分(MSB占的容量不用) ,那么SSD的实际可用容量又如何保证?难道只能使用一半容量么?


确实,如果完全当成SLC那样用,我测试的这块128GB OCZ Vertex 4 只够有64GB的容量,但是它本质上还是MLC颗粒,所以我们可以用如下的操作来解决问题。

那个操作叫做“Folding” 堆叠(其实是一种垃圾回收操作)



有了这张图的方法,那么也就大可不必担心实际可用容量的问题了。

但是,这个操作有个极为头痛的问题:Folding操作极为费时。如果在用户写入的时候做此操作,则会严重影响到实际写入性能表现。如果在闲置的时候做,可能会增加本来不需要的写入量,明显增加了写放大。说的通俗易懂点,就是这块SSD干活先把简单轻松的干完了,把又脏又累的活留到最后,而测试软件测试的范围大多是前面50%的容量,所以我喜欢叫它“跑分神器”。  

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

接下来我把上面的理论部分带入之前我写的日记(实践)部分,再进行下最后的测试解析:

日记地址:http://bbs.pceva.com.cn/thread-51386-1-1.html




测试解析:上图是1.3固件的Zone Measurement图片。(就是全盘顺序写入直到填满,写入的文件大小为64KB)
可以看出1.3固件的OCZ Vertex 4 没有使用MLC颗粒跑SLC模式的算法,性能表现平平,根本不像新一代的旗舰产品,如何推广呢?





测试解析:上2张图是1.5固件的Zone Measurement图片。(第一张是刚做完Secure Erase后的写入,第二张是第一次Zone Measurement跑完后休息5分钟再跑一次)
从第一张图上看,前面50%的容量写入性能接近400MB/s(相比1.3固件的200MB/s是翻倍了),但是后面50%容量写入性能跌到了100MB/s以下,这是因为如上面说的原理那样,64GB的高速SLC模式容量写完了,要继续写入需要做Folding操作,而Folding操作花费的时间非常多,造成了边做Folding边写入,因此速度还不如1.3固件的200MB/s了。接下来看第二张图,性能和1.3固件的性能很像吧,写入很平稳,那是因为之前一次我们写入了和全盘容量相等的数据,这些数据让这块SSD上的所有空间都是MLC(只写LSB的话装不下数据),因此继续全盘填空的话,没有剩余容量去做SLC模式(只用LSB)了,写入速度就是MLC的真实速度,也就是这块SSD原本的面目。



固件1.5空盘ASSSD



接近满盘填充的ASSSD跑分

测试解析:ASSSD测试的时候会在SSD上生成一个2GB的逻辑区域做测试范围,测试中会写入大约5~6GB的数据,由于这个数据量太小,足够被OCZ用SLC模式给覆盖掉,因此空盘的时候速度可以跑的非常非常高,但是一旦容量使用超过50%后,性能直线下降,到了容量快用满的时候,性能直接惨不忍睹了。(如上面的原理那样,容量大了后,不能以SLC模式继续写入了,但是还要把之前SLC模式写入的数据做folding操作,导致了边写边操作的尴尬境地,速度可想而知。)


综上所述,OCZ到底在算法中做了哪些手脚已经很清楚了,不过最后我想再验证一件事。



那就是1.5固件的更新内容:

1.提升持续写入性能。
2.优化闲置垃圾回收算法让更大的区域得到高性能模式。
3.提升阵列卡HBA卡的兼容性。
4.提高ATA安全指令的兼容性。

这个第二条绝对是耐久度大杀器啊,OCZ果然是为了性能不择手段的厂商。



如上图显示,新版1.5固件闲置垃圾回收果然优化的了得,只要休息一会会儿,速度就回来了,可是如之前原理部分我说过,这套独特的算法中,最影响耐久度的部分恰恰就是闲置垃圾回收部分,会严重增加写放大,但是如果你不做,之后的性能就会很坑爹,如果你提前做的话,SSD耐久度则会大损,最终OCZ选择了不顾耐久度。以后请不要抱怨你的SSD内部Intel颗粒耐久度不给力,直接抱怨OCZ Vertex4 消耗耐久度厉害就是了。

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

测试总结: 本次测试一共耗时10天,主要是因为最近工作繁忙,只有晚上到家才有时间才有空折腾。日记部分的实践加上本帖上面原理部分的结合,让我们看清了OCZ Vertex 4系列SSD到底在搞什么鬼。我不想去评价OCZ采用这一做法的优缺点,毕竟选择权在您手上,我只是想让更多的用户知道真相,其实并不是如OCZ官方的说法那样只是简单的“存储模式”和“性能模式”。最后感叹下,这一招在大部分跑分软件上的表现,实在是太吸引眼睛了,炒作起来绝对是事半功倍。

本帖子中包含更多资源

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

x

点评

excellent  发表于 2012-8-3 18:54

评分

参与人数 3活跃度 +12 收起 理由
htxxvip + 5 很给力!
bssharp + 2 最后
afc + 5 很给力!

查看全部评分

2#
giorgio 发表于 2012-7-14 21:44 | 只看该作者
本帖最后由 giorgio 于 2012-7-14 22:13 编辑

好帖,头一次这么前排

其实就跑分来说OCZ确实不错。

实用的话,其实马牌的最好

如果是要考虑颗粒寿命以及即将上马的TLC的话还是SF

MLC时代,马牌主控的镁光M4是最好的,是个临界点,无论是寿命还是速度,当然指的是家用,不是做服务器回写。

另外那个30分钟满血复活大法是镁光的固件提供的而不是马牌本身的功能吧?也就是说浦科特是没有这个功能的?
3#
magicsimon 发表于 2012-7-14 22:11 | 只看该作者
第一,我举报楼上灌水,沙发应该是我的;
第二,太专业的,我得慢慢看,先mark一下,哈
4#
3332243 发表于 2012-7-14 22:15 | 只看该作者
OCZ小白级别最好还是别碰,PM830 M4 M3选择多着
5#
韩细细 发表于 2012-7-14 22:15 | 只看该作者
马克,看看瞧,
6#
einstein86 发表于 2012-7-14 22:26 | 只看该作者
原来如此,受教了。
7#
travis 发表于 2012-7-14 22:46 | 只看该作者
这种做法还是很吓人的,我不会考虑这种产品。
8#
fqslxr 发表于 2012-7-14 22:58 | 只看该作者
OCZ还是这么坑爹啊,两年前了还是没有变
9#
TMG 发表于 2012-7-14 23:06 | 只看该作者
OCZ的这种策略真是……

PS: 当成SLC后…… 等效的PE次数怎么算?……
10#
kinno 发表于 2012-7-14 23:17 | 只看该作者
后排学习
11#
counterflow 发表于 2012-7-14 23:30 | 只看该作者
原来如此,从原理上分析了VX4的前半段性能翻倍的实质……
12#
Epic 发表于 2012-7-14 23:38 | 只看该作者
不知道浴室是怎么发现这个固件具体的算法的?是I固件官网文档?怀疑容易,但是要解释清楚真心不容易,求浴室指点啊
13#
900698 发表于 2012-7-14 23:41 | 只看该作者
了解真相~
14#
neeyuese  楼主| 发表于 2012-7-14 23:55 | 只看该作者
P0wer 发表于 2012-7-15 01:38
不知道浴室是怎么发现这个固件具体的算法的?是I固件官网文档?怀疑容易,但是要解释清楚真心不容易,求浴 ...

在购买前已经做了充足的功课,了解了下各大网站的评测和出问题的现象,参考了不少文档,购买回来自己测试其实只是一个验证阶段。
15#
FlankerWang 发表于 2012-7-14 23:55 | 只看该作者
不知道浴室大能不能估算出OCZ的闲置垃圾回收算法的写入放大大概有多少倍
16#
neeyuese  楼主| 发表于 2012-7-14 23:56 | 只看该作者
写入放大只有公式,真正放大了多少,取决于你写入数据的形态和排列组合。
17#
Sumesis 发表于 2012-7-15 00:54 | 只看该作者
真相大白! 和浴大先前的推測相符,
再經過實測證明,就是為了再做確認,辛苦了!
這樣的作法再加上激烈的GC,
以日常的運用寫入放大真的會很難看......
若是他用的是JS29F64G08ACME2(5K P/E Cycle)可能用一般用戶還夠用,
但是若用了JS29F64G08ACME3(3K+)........
或者他己經在準備JS29F64G08ACMF3(20nm, 1K P/E Cycle)........
18#
大雄来啦 发表于 2012-7-15 01:02 | 只看该作者
和国内某个七字头的品牌很像,为了市场宣传无所不用其极,这样的FW放出来,不是坑害用户么?谁会没事天天去泡ASSD啊!?

想不到OCZ这么短视,靠着这样龌龊的手段来博宣传
19#
whgp05 发表于 2012-7-15 02:44 | 只看该作者
我挺纳闷的,OCZ市场部的人做了那么多亏心事就不怕遭报应?技术部的人难道完全听信于市场部?每次不是用白片/黑片就是开发这种缺心眼固件。

“OCZ2013财年第一季度财报中固态硬盘业务收入1.065亿美元,同比增长54%,毛利率从20.0%提高到25.0%,净亏损也从910万美元(每股0.2美元)缩小到630万美元(每股0.09美元)” - 每次看这种新闻都提SSD市场担心,耍无赖才能玩到最大。
20#
mion 发表于 2012-7-15 05:58 | 只看该作者
贞相大白
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部