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

【原创】镁光M4 128G & 256G测试

  [复制链接]
跳转到指定楼层
1#
neeyuese 发表于 2011-6-12 19:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:129912|回复数:181

本次测试我会分成如下部分:

1、SSD专业术语解释:适合真正想去了解SSD的朋友,如果有兴趣和时间,强烈建议先看这部分。
2、产品的品质和稳定性:SSD是拿来放数据的,也就意味着稳定是第一位的,没有稳定的前提,一切速度都是浮云。
3、产品的包装和内部拆解:产品包装和内部裸照,各大网站都有不稀奇。(个人照相技术很烂,不要鄙视我)
4、产品的标准测试部分:喜欢看分数的朋友可以直接跳到这段。
5、产品的新特性:对比上一代产品,新产品提高或者下降的地方。
6、产品的极限测试部分:我个人有蹂躏倾向,重口味,不喜勿入。
7、产品的使用部分:系统安装和使用上的注意事项。
8、测试总结部分:自己到后面去看,这里没有。^_^


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

第一部分: 专业术语解释


逻辑区块地址(Logical Block Address, LBA)


逻辑区块地址(LBA)是一种描述电脑存储设备上资料所在区块的通用机制,一般用在像硬盘这样的辅助储存装置上。LBA可以指某个资料区块的地址或者某个地址上所指向的资料区块。如非特别说明,一般硬盘上所谓一个逻辑区块的大小通常为512字节(Bit)。对于机械硬盘来说,一个数据区域由它所在的磁头(C)、柱面(即磁道 H)和扇区(S)三个数据所唯一确定。逻辑块寻址模式把硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性编号,在访问硬盘时由硬盘控制器内的地址翻译模块将这种逻辑地址转换为真正的物理地址。因为机械硬盘旧数据可以直接被覆盖,所以逻辑<->物理地址是固定的。到了固态硬盘(SSD)就没那么简单了,因为闪存(NANDFLASH)具有必须先擦除才能再次写入的工作特性(写入以页(Page),擦除则以块(Block)为单位),所以固态硬盘的逻辑<->物理地址是不固定的,需要经过转换才能应用在如今的文件系统上,做这工作的转换层就叫做FTL。(后面有关于FTL的说明)



由于闪存的工作特性,数据不能像普通机械硬盘那样被直接覆盖。当数据第一次写入SSD的时候,由于SSD内所有的NAND颗粒都为已擦除状态,所以数据能够以页为最小单位直接写入(页大小一般是4K,详情参考具体颗粒数据手册),SSD上的主控制器,使用了逻辑地址和物理地址的映射表来管理闪存。(逻辑地址我们一般指操作系统所记录的地址即LBA,而物理地址则是闪存上数据实际存在的地址即PBA)。当有新的数据写入,需替换旧数据时,SSD主控制器会把新数据写入到另外空白的闪存空间上(状态为已擦除的),然后更新地址映射表把逻辑地址指向新的物理地址。而旧地址的内容就成了无效的数据,但是若要在上面再次写入数据,就需要首先擦除掉这个无效数据(闪存的工作特性,1个块一般含128~256个页)。那么问题来了,闪存有编程的次数限制(由于闪存不能覆盖,写前必须擦除,所以习惯叫编程),这样每次的编程/擦除就叫做1个P/E(program/erase cycles)周期,大家应该都知道MLC一般是5000~10000次,而SLC是10万次左右(详情参考具体闪存颗粒数据手册)。



FTL(Flash translation layer) 闪存转换层


        


我们的操作系统通常是按照扇区大小写入数据(512Bit)。不幸的是,闪存的读写单位是页(大小4KB),且闪存的擦除操作是按照块来的(1块=128~256 页),更要命的是写入数据前必须要先擦除,也就是不能覆盖,这就给我们现有的文件系统带来了麻烦,很明显需要更高级、更繁琐的文件系统来解决这个问题。

为了减轻操作系统的负担(不使用高级复杂的文件系统),我们可以用软件来把闪存的操作习惯虚拟成以独立的扇区操作(512Bit),这样就出现了闪存转换层(FTL)。它存在于文件系统和物理介质(闪存)之间。有了FTL,操作系统就可以按照扇区操作了,不用担心碰到之前说的擦除/读/写问题。一切逻辑地址到物理地址的转换,全部由FTL包了。

FTL算法,说穿了就是一种逻辑地址到物理地址的映射,因此,当文件系统发送指令说要写入或者更新一个特定的逻辑页,FTL事实上是把数据写入到一个不同的空闲物理页并且更新映射表(逻辑地址映射物理地址的关联),并把这个页上包含的“旧数据”标记为“无效”。(更新后的文件已经写入新地址了,旧地址的文件自然就失效了)。可以说有了FTL,我们才能像平时的机械硬盘那样操作。很明显FTL的转换速度也直接影响着SSD的传输性能。


  


假设在page0上写入数据(物理地址n),接下来写入数据到page1(物理地址n+1)。接着page0数据被更新,但是更新后的数据并不是覆盖上去,FTL会把它写入到地址(n+2)上,然后标记(地址n)为“无效”。经过多次这样的操作后,这个块上就会装满了许多“有效”及“无效”的数据。如果要再次写入到这个块,就需要先擦除整个块的数据,当然就需要先把所有“有效”数据复制到另外的空白块上再进行擦除。这样的操作就是“垃圾回收”(GC,相关知识在后面会介绍)


WL (Wear leveling) 磨损平衡 - 确保闪存的每个块被写入的次数相等的一种机制。


通常情况下,用户逻辑地址空间里的数据更新速度是不同的:有些区域会经常更新,有些则不常更新。很明显,那些经常更新的数据所占用的闪存块会被快速的磨损掉,而不常更新的数据占用的闪存块磨损就小得多。为了解决这个问题,需要让每个闪存块的编程次数尽可能保持一致:这就需要对每个页的读取、编程操作进行监测,在最乐观的情况下,这个技术会让整个SSD的颗粒物理磨损程度接近并同时报废,当然由于闪存块之间的耐久度个体差异也不小,综合来说这只是个最理想态。

磨损平衡技术依赖于逻辑和物理地址的转换:也就是说,每次主机上应用程序请求相同的逻辑页地址时,闪存控制器动态的映射逻辑页地址到另一个不同的物理页地址,并把这个映射的指向存放在一个特定的”映射表“里。而之前过期的物理页地址就被标记为”无效“并等待随后的擦除操作。这样一来,所有的物理块就能被控制在一个相同磨损范围,并同时“老化”。

磨损平衡算法分静态和动态。动态磨损算法是最基本的磨损算法:只有用户在使用中更新的文件所占用的物理页地址被进行磨损平衡。而静态磨损算法是更高级的磨损算法:在动态磨损算法的基础上,增加了对于那些不常更新的文件占用的物理地址进行磨损平衡,这才算是真正的全盘磨损平衡。

解释得更简单点 - 动态磨损平衡就是每次都挑最年轻的闪存块来用,老的闪存块尽量不用。静态磨损平衡就是把长期没有修改的老数据从一个年轻闪存块里面搬出来,重新找个最老的闪存块放着,这样年轻的闪存块就能再度进入经常使用区,其实概念都很简单,就这么一句话,实现却非常的复杂,特别是静态磨损平衡。




GC(Garbagecollection) 垃圾回收 - NAND颗粒“清洁工”


  



接着上面FTL的图,开始做“垃圾回收”,把所有“有效”页复制到新的空白块里,然后把旧的块整个擦除。垃圾回收是SSD里一个非常关键的操作,对性能起到决定性的影响作用。
垃圾回收的效率取决于整个块里包含的“有效”页数量,“有效”页越少,垃圾回收的效率就越高,因为需复制的“有效”页数量少,所花费的时间也就少。

下面那张图中把Block X和Block Y里的“有效”页复制到Block N里,然后擦除Block X和Y作为备用的“空白块”。

由前面的磨损平衡机制可知,磨损平衡的执行需要有“空白块”来写入更新后的数据。当可以直接写入数据的备用“空白块”数量低于一个阀值(厂商在主控固件里设置,一般是全盘闪存容量写满后),那么SSD主控制器就会把那些包含“无效”数据的块里的所有“有效”数据合并起来放到新的“空白块”里,并删除“无效”数据块来增加备用的“空白块”数量。这个操作就是SSD的垃圾回收机制。

闲置垃圾回收:很明显在进行垃圾回收时,会消耗大量的主控处理能力和带宽,从而造成处理用户请求的性能下降,SSD主控制器可以设置在系统闲置时候“预先”做垃圾回收(提前垃圾回收操作,保证一定数量的"空白块"),让SSD在运行时能够保持较高的性能。闲置垃圾回收的缺点是会增加额外的“写入放大”,因为你刚进行垃圾回收的“有效”数据,也许马上就会被更新后的数据所替代,变成“无效”数据,这样就造成之前的垃圾回收做无用功了。

被动垃圾回收:每个SSD都支持的技术,对SSD主控制器的性能有相当要求,在垃圾回收操作消耗带宽和处理能力的同时处理用户操作数据,如果没有足够强劲的主控制器性能则会造成明显的速度下降。这就是为什么很多SSD在全盘写满一次后会出现性能下降的道理,因为要想继续写入数据就必须一边做垃圾回收一边做写入操作。

简单点来说:GC的本质是在包含“无效”页和“有效”页的块中把“有效”页复制到新的只包含“有效”页的块,擦除旧的“无效”页所占用的块,之后这个被“回收”的块就能被用来写入新数据(空白块)。而闲置GC,就是提前做GC,让"空白块"更多,这个行为是固件“主动”去做的。Trim能直接产生“无效”页,没有Trim的时候,对SSD主控制器来说,被更新的数据,旧数据就是“无效”的。应该说GC是每个SSD的必须要有的基本功能,根本不能算是什么需要特别提起的功能,每次看到厂商宣称支持GC,我都觉得很可笑。除非他们还在使用U盘时代的算法,每写一个页,都要写入整个块,那样就不需要 GC了,但是会造成任何时候都一样非常烂的性能。(Trim的相关知识在后面介绍)


OP(Over-provisioning)预留空间



预留空间一般是指用户不可操作的容量,为实际物理闪存容量减去用户可用容量。这块区域一般被用来做优化操作,包括磨损均衡,垃圾回收和坏块映射。

第一层为固定的7.37%,这个数字是如何得出的呢?我们知道机械硬盘和SSD的厂商容量是这样算的:1GB=1,000,000,000字节(10的9 次方),但是闪存的实际容量是1GB=1,073,741,824字节(2的30次方),2者相差7.37%。所以假设1块128GB的SSD,用户得到的容量是128,000,000,000字节,多出来的那7.37%就被主控固件用来作预留空间了。

第二层来自制造商的设置,通常为0%,7%和28%不等,做个比喻,对于采用128G颗粒的SandForce主控SSD,市场上会有120G和100G两种型号售卖,这个取决于厂商对固件的设置,这部分并不包括前面所说那第一层7.37%的容量。

第三层是用户在日常使用中可以分配的预留空间,像Fusion-IO公司还给用户工具让他们自己调节大小来满足不同的耐用度和性能,而用户也可以自己在分区的时候,不把所有的SSD容量都分满来达到相同目的。

预留空间虽然让SSD的可用容量变小,但会带来减少写入放大、提高耐久、提高性能的效果。



如图:2个一样的64G SSD,左边的分区50G,右边的全部分区。格式化后容量分别为:46G和59G左右。

我们知道在操作系统下,要写入共59G的数据时,左边的盘必须删除13G的“无效”数据文件才行。右边的盘不需擦除就能写入所有59G数据,由SSD映射表的操作方式得知,删除文件后继续写入的数据在物理上会继续写入整个盘(写入预留空间1和预留空间2),在逻辑上会覆盖被删除文件的地址。也就是说,同样写入59G数据,左边的盘已经包含了13G“无效”数据了。(那些被重映射到预留空间的数据,原地址数据就是“无效”、“过期”的)。所以说左边图中的SSD里逻辑上数据“有效”的机会比右边要少,因为逻辑块容量小(分区小),所以在做垃圾回收处理时,需要复制的“有效”数据也少了,自然效率就提高了。

一般来说,建议不支持Trim的时候,或者对SSD的性能有较高要求,如数据库等类的应用时,增加一定比例的第三层预留空间容量(此空间需要先做HDD ERASE,保证没有被使用过),可以很好的起到保持速度,提高耐久度的作用。(做RAID阵列时,强烈建议留部分OP来弥补没有Trim产生的影响。)


Trim- 一个ATA指令,由操作系统发送给SSD主控制器,告诉它哪些数据占的地址是“无效”的。


要明白什么是Trim和为什么它很重要,需要先知道一点文件系统的相关知识。

当你在电脑里删除一个文件的时候,操作系统并不会真正的去删除它。操作系统只是把这个文件的地址标记为“空”,让它可以被再次使用,这表示这个文件所占的地址已经“无效”。但这会带来一个问题,硬盘并不知道操作系统已把这个地址标记为“空”了,机械盘的话是无所谓,因为下次系统让它在这个地址上面写入数据的时候,可以直接在上面重新覆盖写入,但是到了SSD上就出问题了。

闪存需要先擦除才能再次写入数据,要得到空闲的闪存空间,SSD必须复制所有的“有效”页到新的“空白块”里,并擦除旧块(垃圾回收)。如果没有Trim,那意味着SSD主控制器不会知道这个页是“无效”的,除非等到再次被操作系统要求覆盖数据进去。这样就无法在最适当的时机做出最好的优化,既影响垃圾回收的效率(间接影响性能),又影响SSD的耐久度(就是很多人都相当关心的寿命)。

这里要强调下,Trim只是条指令,让操作系统告诉SSD主控制器这个页已经“无效”就算完了,并没有任何其它多余的操作,对Trim后的优化其实是垃圾回收在干活。Trim能够减少写入放大,因为主控制器不需要复制已经被操作系统定义为“无效”的页(没Trim的话,主控就因为不知道,而认为这个页“有效”)到“空白块”里,这同时代表复制的“有效”页变少了,垃圾回收的效率提高了,SSD性能下降的问题也减弱了。

所以说Trim的奥秘在于它能大量减少“有效”页的数量,大大提升垃圾回收的效率。

相对于企业级市场,在消费级的SSD里,Trim显得更为重要,企业级的SSD大部分都带有相当大的OP(备用空间)空间,能够提升一部分的垃圾回收效率。而消费级SSD一般OP都比较小,所以需要Trim来保证垃圾回收的效率。

Trim指令只有在操作系统进行删除、格式化等操作时候才会发送。Trim指令目前还不支持发送给RAID阵列中的SSD。(操作系统下进行的软件RAID可以支持)。

Trim的支持需要3个要素:
                                    1.SSD主控制器和当前搭配的固件需要支持Trim命令接收。
                                    2.当前操作系统需要支持Trim指令发送。(Win7/2008R2及后续版本)
                                    3.当前使用的磁盘驱动程序必须支持Trim命令传输。


只有同时满足以上3个条件,才能做到系统Trim命令发送,驱动传输Trim命令,SSD固件接收到传输来的Trim命令。

Trim目前不支持以下几种情况:(可能还有更多)
                                     1. Trim目前不支持RAID阵列中的SSD。(操作系统下进行软件RAID除外)
                                     2. Trim目前不支持磁盘镜像文件内操作。(VM等虚拟机软件使用的虚拟磁盘文件)
                                     3. Trim目前不支持加密的文件系统。(以防止暴露加密文件系统信息)



WA(Write amplification)写入放大 - 闪存和固态硬盘之间相关联的一个重要属性。


因为闪存必须先擦除才能写入(我们也叫“编程”),在执行这些操作的时候,移动(或覆盖)用户数据和元数据(metadata)不止一次。这些重复的操作,不但增加了写入数据量,减少了SSD的使用寿命,而且还吃光了闪存的带宽(间接影响了随机写入性能)。

早在2008年,Intel公司和SiliconSystems公司(于2009 年被西部数据收购)第一次提出了写入放大并在公开稿件里使用到这个术语。他们当时的说法是,写入放大不可能低于1,但是这种说法在2009年被 SandForce打破,SandForce说他们的写入放大是0.55。

举个最简单的例子:我要写入一个4KB的数据,最坏的情况就是,一个块里已经没有干净空间了,但是有无效的数据可以擦除,所以主控就把所有的数据读到缓存,擦除块,缓存里更新整个块的数据,再把新数据写回去,这个操作带来的写入放大就是: 我实际写4K的数据,造成了整个块(共1024KB)的写入操作,那就是放大了256倍。同时还带来了原本只需要简单一步写入4KB的操作变成:闪存读取 (1024KB)→缓存改(4KB)→闪存擦除(1024KB)→闪存写入(1024KB),共四步操作,造成了延迟大大增加,速度变慢是当然的。所以说写入放大是影响 SSD随机写入性能和寿命的关键因素。

用100%随机4KB来写入SSD,目前的大多数SSD主控制器,在最坏的情况下写入放大可以达到100以上。如果是100%持续的从低LBA写入到高LBA的话,写入放大可以做到1,实际使用中写入放大会介于这两者之间。用户还可以设置一定的预留空间来减少写入放大,假设你有个128G的SSD,你只分了64G 的容量使用,那最坏情况下的写入放大就能减少约3倍。


影响写入放大的因素


许多因素影响SSD的写入放大。下面我列出了主要因素,以及它们如何影响写放大。
        1. 垃圾回收(GC)--- 虽然增加了写入放大,但是速度有提升。
            这个比较特殊的算法用来移动,合并,擦除闪存块来提升效率。(详见GC章节)
        2. 预留空间(OP)--- 减少写入放大,好。(预留空间越大,写入放大越低)
            在SSD上划出部分空间留给主控做优化,是用户不能操作的空间。(详见OP章节)
        3. Trim 开启后可以减少写入放大,好。
            一个ATA指令,由操作系统发送给SSD主控,告诉主控哪些数据是无效的并且可以不用做垃圾回收操作。(详见Trim章节)
        4. 可用容量 减少写入放大,好。(可用空间越大,写入放大越低)
            用户使用中没有用到的空间。(需要有Trim支持,不然不会影响写入放大。)
        5. 安全擦除 Secure Erase 减少写入放大,好
            ATA安全擦除命令用来清除在磁盘上的所有用户数据,这个指令会让SSD回到出厂时的性能(最优性能,最少写入放大),但是随着使用时间变长,GC操作恢复后,写入放大又会慢慢增加回来。许多软件使用ATA安全擦除指令来重置磁盘,最著名的为HDDErase。对SSD来说,重置就是(除了OP区域内的部分私有区域外的)全盘擦除操作(逻辑1),瞬间即可完成清除所有数据让SSD回到初始状态。
        6. 持续写入(Sequential writes) 减少写入放大,好
            理论上来说,持续写入的写入放大为1,但是某些因素还是会影响这个数值。
        7. 静态/动态数据分离(Separating Static and Dynamic Data)减少写入放大,好
            高端SSD主控制器支持静态和动态数据的分离处理,此操作要求SSD主控制器对LBA里经常写入(动态数据,热数据)和不经常写入(静态数据,冷数据)的数据块进行归类,因为如果块里同时包含了静态和动态数据,在做GC操作的时候会为了改写其实没必要的静态数据而增加写入放大,所以把包含静态数据的块归类后,因为不常改写,写入放大就减少了。但是迟早SSD主控会把这些静态的数据转移到别的地方来进行磨损平衡。(因为静态数据占着的数据块一直不改写,编程次数低于平均值的话,会造成颗粒磨损不平衡,违背了磨损平衡,真够矛盾的。)
        8. 随机写入(Random writes)提高写入放大,不好
            随机写入会写入很多非连续的LBA,将会大大提升写入放大。
        9. 磨损平衡(WL)直接提高写入放大,不好
            确保闪存的每个块被写入的次数相等的一种机制。(详见WL章节)


BBM(Bad block management)坏块管理



不管磨损平衡算法如何高明,在运作中都会碰到一个头痛的问题,那就是坏块,所以一个SSD必须要有坏块管理机制。何谓坏块?一个闪存块里包含有不稳定的地址,不能保证读/写/擦的时候数据的准确性。
坏块分出厂坏块和使用过程中出现的坏块,和机械盘的坏块表一样(P表和G表),SSD也有坏块表。出厂坏块的话,在坏块上会有标记,所以很容易就能被识别,后期使用中出现的坏块就要靠主控制器的能力了,一般来说,越到闪存生命的后期(P/E数开始接近理论最大值),坏块就会开始大量出现了。

一般来说闪存出厂都包含坏块,不过厂商有个最小有效块值(NvB-minimum number of valid blocks),以Intel的34nm MLC L63B来说,1个裸晶(die解释详见备注)上4,096个块里至少要有3,936个块是好的,从这上面可以知道,虽然出厂的闪存可能有坏块,但是厂商保证在正常的生命周期里,好块数量不会低于3936个块。而且每个裸晶的第一个块地址(00h)在出厂时是必须保证完好的。(ECC后,这个块必须有效,ECC解释详见备注)。闪存出厂前都会被执行擦除操作,厂商会在出货前会把坏块标记出来(厂商会在坏块的第一个页的SA区打上标记,SA区解释详见备注。) 这样坏块管理软件就能靠监测SA区标记来制作坏块表。由于在使用中会产生坏块,所以SSD的主控制器在每次编程/擦除/复制等操作后都要检查块的状态。对颗粒的ECC要求也要达到厂商的标准以上(主控强不强,看ECC能力也是一个参考)。坏块管理算法是必须的,坏块并不会影响好块的性能。


坏块的标记和管理:


刚出厂的颗粒内部已经被完全擦除过(FFh),坏块在出厂时也被标记上了。

以MLC来说,颗粒内任何的块里最后那页的SA区首个字节数据非FFh的话,那就是坏块。

主控制器必须在每次擦除前读取一下坏块信息,因为坏块信息是可以被擦除的并且不能在擦除后恢复,所以建议不要去擦除原始的坏块信息。在读取闪存内所有的SA区域后,坏块表就被建立了。纯靠自己的坏块识别方法而不使用原厂提供的SA区域坏块信息创建的坏块表是不严谨的,因为在原厂测试中,坏块可能是在某些特定环境下才会出现,所以有可能在自行的检测中被遗漏掉。

当坏块表创建后,主控会把坏块表保存在某个好的块里,每次重启后,主控会从那个块里把表调用进缓存(RAM)里。坏块表中定义的地址是不能被访问的,所以当系统想去访问这个块的地址时,FTL会重新把它映射到好的块地址上去。


块的替换:


在闪存的生命周期中,坏块会逐渐增多。闪存设备上有个状态寄存器,它用来检测操作是否正确完成。当进行写入或擦除操作,状态寄存器检测到错误时,即可判定当前的块为坏块。

鉴于闪存的写入是以页为单位操作的,操作时可能影响到整个块里其它页的数据,所以当状态寄存器发现写入出现错误时,坏块管理程序就能够用好的块替换这个坏块,重新在新的好块里写入这个数据,并把检测到的坏块里其余的有效页数据全部复制到新的块里去,标记老的块为坏块,更新坏块表里的地址,把原本坏块的地址重新映射到新的好块里。



ECC- Error Checking and Correction 校验和纠错


ECC的全称是 Error Checking and Correction or Error correction Coding,是一种用于Nand的差错检测和修正算法。由于NAND Flash的工艺不能保证NAND在其生命周期中保持性稳定可靠,因此,在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用 NAND Flash的系统中一般都会采用一定的坏区管理机制,而管理坏区的前提是能比较可靠的进行坏区检测。如果操作时序和电路稳定性不存在问题的话,NANDFlash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page中只有一个或几个bit出错,这时候 ECC就能发挥作用了。不同颗粒有不同的基本ECC要求,不同主控制器支持的ECC能力也不同,理论上来说ECC能力也是够用就行。

一般来说NAND 闪存设备使用线性分组码。当前SSD内最普遍的ECC码是BCH码。当数据写入的时候,控制器内部的ECC模块计算数据并生成ECC签名,一般来说这个步骤非常快,因此并不会影响整个SSD太多性能。ECC的签名一般来说都保存在NAND页后部的SA区域,当数据从NAND读取的时候ECC模块回去读取 ECC签名,并对照相同与否来发现出现的错误。

相比发现错误,修复接收到的数据错误更复杂。第一步是检测收到的数据是否出错,这个和上面生成ECC签名的操作一样非常快。如果检测到接收到的数据包含错误比特,就需要去生成独特的ECC算法(比如BCH),这部分会造成性能损失,但是只有在检测到错误时候才做。用生成的ECC算法来修复之前检测到的错误。

必须强调的是,ECC解码过程是可能出现失败的,所以ECC系统架构必须合理的设计才能保证ECC不出错,而ECC能够修复的错误比特数取决于ECC算法设计。拿SandForce 2xxx系列主控来说,最大支持修复每512字节上的55比特错误。(BCH55)

如果ECC纠不过来, 一般会报ECC Fail, 用户表现为Read Fail,有时候ECC甚至诊测不到出错, 就会导致数据错误。

NAND的稳定性需要有多方面保障,ECC只能用来保证部分比特出错时的修复,如果整个页甚至块出现大面积错误,那么只有RAID这类的冗余保护才能修复了。

企业级中甚至还有更苛刻的要求,数据完整性检查,SSD内部所有的总线, 先进先出数据缓存器部分都要查,可以检测数据在进入NAND之前的错误。


如图是个4KB页的NAND闪存。(SA区128字节)

1.每当一个page写入NAND Flash,数据会通过ECC引擎,创造独特的ECC签名。

2.数据和对应的ECC签名存都存放在NAND Flash里,数据放在数据区,ECC签名放在 SA区。

3.当需要读取数据时,数据和ECC签名一起被送往主控制器,此时新的ECC签名被生成。

4.此时主控把2个签名对照,如果签名相同,说明数据没有错误,数据就会被送往主机。如果签名不同,数据就会先放在主控里,而不是直接送往主机。


某些主控会把改正后的数据再次写回闪存,另一些则不会,因为谁也不知道下次读取会不会再出错。

ECC的能力也影响到NAND Flash的耐久度,数据保存期。当NAND Flash的P/E数到了之后,错误数会越来越多,ECC弱的直接就报坏块并标记退休,如果ECC能力足够强,能挖掘出Flash更多潜力,只是效果比较有限。


典型固态硬盘架构介绍:



操作系统:我们使用的操作系统一般为WINDOWS,MAC OS,LINUX之类。

文件系统:每个操作系统都有自己的文件系统,比如WINDOWS的NTFS,FAT32等。

底层驱动:没有驱动程序,硬件是不能和软件交流的。

ATA接口:ATA数据通道接口标准。(这部分后面会详细介绍)

外置缓存:目前很多SSD都带了一定容量的DRAM作为缓存的。缓存里面可以存放用户数据,也可以存放映射表之类的。


NAND控制器里包含的东西:

A.主机接口:用来和主机交流用的控制数据传输的部分。

B.FTL闪存转换层:内部包含许多模块,例如坏块管理,磨损平衡,ECC纠错,交叉读写算法和最主要的逻辑物理地址转换功能,请参考之前的章节。

C.NAND接口:主控制器和闪存交流用的控制数据传输的部分。


Legacy/ONFI/Toggly:闪存数据通道接口标准。(这部分后面会详细介绍)

NAND闪存:我们平日看到的SLC,MLC闪存颗粒。

ATA数据接口通道标准


ATA技术是一个关于IDE(Integrated Device Electronics)的技术规范。它最早由Texan和Compaq公司提出,目的是把硬盘控制器嵌入到驱动器中。 随着IDE/EIDE得到的日益广泛的应用,INCITS(国际信息技术标准委员会)将该接口自诞生以来使用的技术规范归纳成为全球硬盘标准,这样就产生了ATA(Advanced Technology Attachment)。

ATA发展至今经过多次修改和升级,每新一代的接口都建立在前一代标准之上,并保持着向后兼容性。

第一代是ATA-1,就是用于康柏桌面386 系列的最初的标准规范。它被制定为“主/从”结构。ATA-1是建立在ISA96-pin标准连接器上的附属设备,使用40或44pin的连接器和电缆。在44pin方案里 ,额外多出的4个引脚用来向那些没有单独电源接口的设备提供电力支持。另外,ATA-1同时提供DMA和PIO两种方式传送信号。

ATA-2常被称为EIDE (Enhanced IDE)、Fast ATA 或 Fast ATA-2,此时DMA已经完全执行于这个版本里了,标准DMA传输速度已经由ATA-1里的4.16MBps提升到16.67MBps了。ATA-2还提供对电源管理、PCMCIA卡和可移动设备的支持,通过标准寻址方法CHS(柱面、磁头、扇区)支持最高8.4GB的硬盘容量。此外,ATA-2还引入LBA方式,这一方法突破了硬盘按照CHS方式访问磁盘的老观念,为适应以后硬盘容量的快速增长打下了的良好基础。同时通过不断升级的BIOS版本或者第三方软件,能够达到支持最大137.4GB的容量。只要你的电脑支持EIDE,就可以在CMOS设置中找到LBA(LBA,Logical Block Address)或(CHS,Cylinder、Head、Sector)的设置选项。EIDE支持的硬盘数目也有增加,它允许主板上具有两个插口,每个插口可以分别连接一个主设备和一个从设备,从而可以支持四个IDE设备。随着自我监控检测和SMART等技术的介入,IDE驱动器被设计制造得更加可靠。

ATA-3没有引入更高速度的传输模式,在传输速度上并没有任何的提升,最高速度仍旧为16.6MB/s。只在电源管理方案方面进行了修改,引入了了简单的密码保护的安全方案。但引入了一个划时代的技术,那就是S.M.A.R.T(Self-Monitoring Analysis and Reporting Technology,自监测、分析和报告技术)。

ATA-4融合的最大两个特点就是支持Ultra DMA和整合了ATAPI(AT Attachment Program Interface)标准。ATAPI为CD-ROM、磁带备份机和其它可移动存储设备提供了通用接口。而在此之前,ATAPI是一个完全独立的标准。伴着ATAPI的入盟,ATA-4对可移动介质的支持得到了立竿见影的改善效果,同时Ultra DMA也将DMA的数据传输率从原有的16.67MB/s提高到了33.33MB/s。除此之外,在原有的40pin的接口和线缆基础上,ATA-4外加了40个引脚,总共80个,其中的40根是地线,分散于标准的40根线缆之间用于增强信号质量。ATA-4也被叫做Ultra DMA、Ultra ATA或Ultra ATA-33。

ATA-5主要升级了自动侦测设备使用的是何种线缆,40pin还是 80pin?在使用80pin线缆时,Ultra DMA传输率上升为更高的66.67MB/s。所以ATA-5也被称为Ultra ATA-66。

ATA-6也叫Ultra ATA-100,接口和数据线与ATA66一样,也是使用40针80芯的数据传输电缆,接口完全向下兼容,支持ATA33、ATA66接口的设备完全可以继续在ATA100接口中使用,它提高了硬盘数据的完整性与数据传输率。

ATA-7也叫ATA133。只有迈拓公司(被希捷收购)推出一系列采用ATA133标准的硬盘,这是第一种在接口速度上超过 100MB/s的IDE硬盘。在ATA-7协议的最后卷,加入了对SATA 接口的内容,但是由于初期SATA接口是靠着转接芯片实现,传输率时钟突破不了ATA 133的133MB/s,后期原生SATA芯片开发出后,终于实现了SATA接口达到了SATA 1.5Gbit/s的理论传输率。第二代SATA标准SATA 3Gbit/s在2004出现,符合ATA-7规范,主要改进是在传输率翻倍的同时,线长相比SATA 1.5Gbit/s的1米支持到最大2米。之后英特尔提出了AHCI标准,让SATA支持NCQ技术,提高了多任务多深度环境下的磁盘性能,并支持了热插拔。

ATA协议最新的版本是ATA-8,经过了几次修订强化了许多对现今闪存类形态硬盘的支持,例如ATA8-ACS规范增加了对混合硬盘的支持度。ATA8-ACS2规范增强了固态硬盘Trim指令的部分高级功能。而SATA 6Gbit/s也符合ATA-8规范,增强了NCQ的优先级处理方式和演算法,提升了影音传输方面的质量,并为了解决高传输率芯片增加功耗的问题,增强了电源管理功能。


Legacy/ONFI/Toggly闪存数据通道接口标准


早期的闪存产品每个厂家的设计标准各有不同,会碰到各种各样的问题,特别是到了06年之后,闪存产业市场需求开始发力,造成了迫切需要一个统一的标准来改变这个问题。

2007年1月,以英特尔,镁光,海力士,意法半导体,力晶为首的NAND闪存厂商和控制芯片开发商台湾群联电子以及产品厂商索尼等宣布统一制定连接NAND闪存和控制芯片的接口标准“ONFI 1.0”。

ONFI 1.0制定的是包括:闪存指令,寄存器集,引脚排列,电气参数以及封装等有关标准。主要是从包括东芝和三星在内各NAND闪存厂商的自主标准中,将通用的部分抽出进行了标准化。这样便使控制芯片和中间件不依赖于NAND芯片厂商而可实现通用,由此可减轻产品厂商的开发负担。

由于传统的Legacy接口每通道传输带宽为40MT/s,已经不能满足现今高速发展的SSD产品需求。ONFI 1.0标准把传统Legacy接口每通道传输带宽提升到了50MT/s,可以说ONFI 1.0的目的主要是想着统一接口的设计。

2008年2月,ONFI 2.0宣布了,ONFI 2.0的标准使NAND闪存的通道传输带宽从50MT/s提高到了133MT/s,并保持了老版本接口的兼容性。ONFI 2.0主要是通过下面2项技术来缩短数据在缓存区中的交换传输时间。第一,在DRAM里常用的双倍数据流信号技术。第二,ONFI使用了源同步时钟来精确控制锁存信号,使闪存设备达到了更高的工作频率。

2009年2月,ONFI 2.1宣布了,相比ONFI 2.0更加简化了闪存控制器设计,并将传输性能提升到166MT/s ~ 200MT/s附近。ONFI 2.1特别针对上网本等低消费产品应用做了调整,加入了新的Small Data Move指令,解放低端消费产品在纠错功能上的限制,增强ECC纠错能力,新增交错读取支持,允许主机向NAND闪存写入数据时停止时钟来节省用电,新增Change Row Address指令来解决某些情况下NAND闪存操作负担,并同时向下兼容老的ONFI标准并和老NAND界面兼容。

2009年10月,ONFI 2.2宣布了,在ONFI 2.1的基础上,ONFI 2.2加入了独立LUN重置,增强页编程寄存器的清除,新的ICC测量和规范。前两个功能主要增强了多NAND环境下处理的效率,而规范的电流ICC测试和定义将简化供应商的测试和改进数据的一致性。

2011年3月,ONFI 3.0宣布了,提升接口带宽到400MT/s,降低CE针脚需求来提升PCB的布局能力,支持EZ-NAND(闪存内集成ECC)接口。


另一方面,老牌NAND制造厂商三星的接口标准为OneNAND,而东芝的接口标准为LBA-NAND,由于这两家全球份额加起来接近70%,不可能让IM(英特尔/镁光新加坡合资NAND厂)这个后起之秀那么嚣张,所以在2007年底,2家老牌NAND制造厂商进行了技术上交互式授权,将共享三星的OneNAND和东芝的LBA-NAND闪存专利技术和品牌的生产、市场和销售权。

根据这一互惠协议,在有效期内,三星的ONENANA和FLEX-ONENAND两种混合(FUSION)存储器芯片规格,东芝的单片封装LBA-NAND和MOBILELBA-NAND芯片规格都将互相授权给对方使用。同时两家公司还将共同开发和经营基于兼容各项原创技术的产品。

三星的OneNAND和Flex OneNAND均为在一颗芯片上集成NAND核心、SRAM、错误纠正引擎和逻辑电路的混合存储器,接口为NOR。Flex-OneNAND可划分为SLC和MLC两部分,为消费电子及其他应用提供高度灵活性与高性价比闪存存储方案,同时能有效减少开发时间。

东芝LBA-NAND和mobileLBA-NAND均为在单片封装内集成了控制器和NAND闪存的非易失性存储器,针脚和指令序列均与传统的NAND闪存存储器兼容,但采用了逻辑地址访问方法。LBA-NAND面向于移动消费产品,例如数字音频播放器和个人媒体播放器,mobileLBA-NAND则是为手机应用而设计。两者均可减少开发成本和缩短开发周期。

2010年6月,三星和东芝宣布了他们的新的NAND数据通道接口标准。DDR Toggle Mode模式,相比传统的异步NAND闪存,其接口带宽可从40MT/s提升到133MT/s,DDR Toggle Mode NAND闪存使用双向DQS生成输入/输出信号,在信号上升沿和下降沿都能进行资料的传输,所以速度可以翻倍。由于还是异步设计,没有改变特定的时钟信号,相对同步设计上会更省电,设计上会也相对简单。目前DDR Toggle Mode 2.0版也已经宣布,接口带宽增加到了400MT/s。



什么是多Plane NAND?



多Plane NAND是一种能够有效提升性能的设计。多Plane的原理很简单,从上图中(Micron 25nm L73A)我们看到,一个晶片内部分成了2个Plane,而且2个Plane内的Block编号是单双交叉的,想象我们在操作时,也可以进行交叉操作(一单一双)来提升性能,根据测试,某些情况下性能可以比单Plane设计提高约50%以上。



上图中我们看到2个Plane Page读取操作相比单个Page读取操作每2个Page节省了一次Page读取时间。同样作为擦除,写入操作的话,2个Plane的交叉操作也能带来性能的提升。


什么是Interleave?



前面是针对单个晶片内部的多Plane进行操作,这里的Interleave指的是对单通道下多个晶片进行操作。打个比方,上图为64G的M4 SSD,颗粒为8颗粒L73A(每个颗粒内部2个Die封装),那么作为8通道的主控制器,每个通道里可以同时对2个Die(4个Plane)进行操作,达到提速的目的。


  


假设上面是单通道的操作模式,第一个图一个通道上是1个Die,第二个图一个通道上是2个Die。假定1次读取需要5个时钟周期,一个方块代表1个时钟周期,第五个时钟周期数据即可传输完成,2个Die的时候采用交错操作,第一个时钟周期时Die 1 发送完读取指令后在第二个时钟周期时,Die 2接着发送读取指令,这样就能接近成倍的提升性能,这也就是为什么M4的128G写入速度比64G写入速度快一倍的道理。

从硬件原理来了解固态硬盘之理论篇:


Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的如硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。

Flash的内部存储是金属-氧化层-半导体-场效晶体管(MOSFET),里面有个浮置栅极(Floating Gate),是真正存储数据的单元。



数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的控制栅极(Control gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth 来表示。

1.对于NAND Flash的写入(编程),就是控制Control Gate去充电(对Control Gate加压),使得浮置栅极存储的电荷够多,超过阈值Vth,就表示0。

2.对于NAND Flash的擦除(Erase),就是对浮置栅极放电,低于阀值Vth,就表示1。

NANDFlash的架构:



如上图所示,这是一个8Gb 50nm的SLC颗粒内部架构。

每个page有33,792个存储单元,每个存储单元代表1bit(SLC),所以每个page容量为4096Byte + 128Byte(SA)。每个Block由64个page组成,所以每个Block容量为262,114Byte + 8192Byte (SA)

Page是NAND Flash上最小的读取/写入(编程)单位(一个Page上的单元共享一根字符线Word line),Block是NAND Flash上最小的擦除单位。不同厂牌不同型号颗粒有不同的Page和Block容量。


下图是个8Gb 50nm的SLC芯片:



4KB+128字节的页大小,256KB+8KB的块大小。图中每个页内4096字节用于存储数据,另外128字节用来做管理和ECC用等。


SLC和 MLC 区别:


SLC主要针对军工,企业级应用,有着高速写入,低出错率,长耐久度特性。

MLC主要针对消费级应用,有着2倍容量于SLC,低成本,适合USB闪盘,手机,数码相机等储存卡。如今也被用于消费级固态硬盘上。



SLC就是在前面提到的每个存储单元里存储1bit的数据,存储的数据是”0”还是”1”是基于Vth电压阀值的判定,对于NAND Flash的写入(编程),就是控制Control Gate去充电(对Control Gate加压),使得浮置栅极存储的电荷够多,超过4V,存储单元就表示0-已编程,如果没有充电或者电压阀值低于4V,就表示1-已擦除。



MLC就是每个存储单元里存储2bit的数据,存储的数据是”00”,”01”,”10”,”11”也是基于电压阀值的判定,当充入的电荷不足3.5V时,就代表”11”-完全擦除,当充入的电荷在3.5V和4.0V之间,则代表”10”-部分已擦除,当充入的电荷在4V和5.5V之间,则表示”01”-部分已编程,当充入的电荷在5.5V以上,则表示”00”,完全编程。同时由前面的图可以看到,MLC相比SLC虽然使用相同的电压值,但是电压之间的阀值被分成了4份,可以想象这样就直接影响了性能和稳定性。

相比SLC,MLC电压阀值分成4份后造成的影响主要有下面几点:

1.相邻的存储电荷的浮置栅极间会互相干扰,造成浮置栅极里的电荷不稳定出现bit错误,MLC由于阀值相比SLC更接近,造成出错几率更大。

2.MLC读写性能降低,写入更是降低50%以上,因为需要确认充入电荷的量,这需要更精确的处理。SLC只有”0”和”1”,也就是已编程和已擦除,而MLC会有“00”,“01“,”10”,”11” 4个状态,在充入电荷后还要去判断是哪个状态,自然就慢了。

3.因为上面说的,造成额外的读写压力,所以功耗明显增大。

4.因为额外的读写压力,造成闪存的写入耐久度和数据保存期受到影响。


eMLC和eSLC的P/E为什么那么高?




在NAND Flash工厂制造处理过程中,厂商把晶元上最好的那部分Flash晶片挑选出来并用企业级的标准来检测晶片的数据完整性和耐久度。检测完后,这些晶片被取下来改变内部些许参数并进行之后的比标准MLC更苛刻的测试。当这些晶片通过测试后,就被定义为eMLC级别组,余下的就成为MLC级别组了。



相对普通MLC来说,eMLC的不同之处主要体现在下面4个方面:

1. P/E数字34nm镁光的eMLC是30,000次,而MLC是5000次。

2. eMLC擦写操作和编程操作所需要的时间相比MLC更长。(内参调整)

3. 当使用完厂商保证的P/E数后,eMLC的数据保存期一般在3个月,而MLC的数据保存期在1年。

4. 相对在的企业级应用下,使用eMLC的稳定性比MLC要高得多,也就是出错的概率更小。



同理eSLC就是从SLC晶元上挑出来的优质晶片经过内参调整和企业级标准筛选的产物。


传统机械硬盘相比固态硬盘的弱势最明显的地方



上图是个典型的7200转机械硬盘,我们定义它平均寻址时间为8ms,传输率为75MB/s,那么传输一个32KB的随机文件消耗的时间比率就是图中这个情况。我们看到至少有95%的时间其实都消耗在机械部件的运作上了。

可以想象,我们的操作系统里面的文件大部分都是低于32KB大小的,而且有时候,即使文件是连续的,但是由于磁盘碎片的存在,硬是把数据拆成几部分,每次寻址去找另外的部分时候,就会有那么多寻址和潜伏期时间被浪费了,所以这就是为什么机械硬盘的随机性能不如固态硬盘的道理。



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

第二部分:产品的品质和稳定性


作为存放电脑中数据的介质,产品的品质一定要过关,绝对不能为了速度而忽视了产品的稳定性。


1.设备用料的好坏:


很多人搞不明白Micron, Crucial, Lexar, SpecTek,Numonyx等名字之间的关系,这里按照我自己了解到的情况稍微解释下:


Micron Technology 镁光科技 – 总公司 - 负责研发生产,主要企业市场和OEM笔记本市场。


Lexar® 雷克沙 – 镁光科技子公司(06年被收购) - 负责零售渠道。


SpecTek® - 镁光科技全资子公司 – 88年开始负责元件恢复和测试,96年开始使用自己品牌。


Numonyx® 恒忆 - 镁光科技子公司 (10年被收购)– 负责嵌入式设备的市场研发生产。


Crucial™ - 雷克沙子品牌 – 内存和固态硬盘外加小部分闪存盘品牌,主要网购渠道。


这里我们先来看段视频,讲述了闪存设备的制造生产包装过程。



看完视频是不是很震撼?没想到小小的Flash产品竟然有那么多讲究。




这个是视频中2:02部分的截图,正在做晶元上的晶片扫描分析,红点就是坏的晶片(靠边缘居多),也就是可能会成为“黑片”或者“白片”,这部分在第一层测试环节就被原厂抛弃了。我们可以想象,我们的数据都是存放在这些晶片上的,晶片的品质是非常重要的,选择原厂的产品自然是更有保障了。(我想至少有特挑优先权吧)通过了第一层的晶元测试绝对不意味着这个晶片就合格了,之后还要经过层层的测试,甚至到了最后打上原厂标记的产品都不一定是完全合格品,那么那些不合格的颗粒到了哪里去了哪?正常情况下这部分晶片或者颗粒会流到镁光科技的全资子公司SpecTek那里去做接下来的恢复测试工作。



SpecTek坐落在博伊西,爱达荷州的镁光公司园区内。



SpecTek负责修复全球的镁光加工厂里的损坏晶元/晶片/颗粒。



进入SpecTek系统的记忆体元件被详细记录并归类,每个储物箱都有唯一的标示,以便在需要测试时可以方便查找。



第一部分测试的是边缘测试,使用半导体测试系统和设备架对记忆体元件做高温和电压波动的测试。



通过边缘测试的记忆体元件会被装载机从塑料托盘里取出放入老化测试基板。



之后进入老化炉里进行可靠性测试,记忆器元件在高温下进行24~48小时的加电运作。这个测试保证了SpecTek产品的长期可靠性。



从老化测试基板上取下元件。



使用半导体测试系统和设备架对记忆体元件进行内部操作速度的测试,



所有通过测试的元件进行激光打标。



打标完后的产品就像图中这样。



最后再进行元件内部扫描,确保焊接到PCB前的元件内部连接完整。



包装系统对标示进行检测,防止不同规格产品混搭。



元件被独立封装进印刷电路板上(PCB



每个模组都会进行独立测试来确保质量和稳定。



完成测试后的产品包装在防静电包装后寄出。

SpecTek的产品数据手册里我们可以看到他们的元件分了很多档次,有些被屏蔽部分记忆单元,有些被降低工作频率,有些要配合特殊需求工作,只有很少一部分可以作为完整品使用。而前段时间美商OCZVertex2产品上竟然用了SpecTek的颗粒,PCEVA之前也特别曝光过,虽然美国OCZ官网说采用的是编号ALSpecTek的完全通过测试的产品,甚至超过原厂颗粒,但不管如何,SpecTek是作为镁光科技的元件恢复部门而存在的,这层阴影让产品感觉不能给用户的数据带来安全保障。(我觉得真要用的话还是更适合放USB闪存盘上而不是SSD上)


从图中我们看到SpecTek的标是盖在Micron标上的,也就是说这颗粒原本是在镁光封装后才被抛弃的,至少说明了参数没达到镁光的标准,才会进入SpeckTeck恢复测试。

所以我认为,完全合格的闪存颗粒是不会进入SpecTek工厂的,一个连颗粒都不是自己造的某品牌,你有啥资格谈自己产品的颗粒品质比原厂颗粒还要好?



这个就是SpecTek的颗粒型号查询表,尾号为AL确实如OCZ所说符合全部的产品标准参数要求。问题是这个标准是SpecTek的,不是Micron原厂的,况且看看这张型号查询表里除了AL外的几个编号。。。-AW= No Write Protect Feature  (无写保护功能),-AC= No Cache Feature (无缓冲功能)-HP= Single Plane (只有单plane工作) 还有啥只有单个die,单个CE工作的。。。看看就吓人,你说你敢相信从这些颗粒里挑出来的完全符合标准参数的颗粒能好到哪里去。

2.设备固件的稳定性:


就像所有硬件一样,SSD也需要有自己的操作系统(固件)。固件的稳定性非常重要,因为大部分情况下SSD都是死在了固件这个环节上(实际内部颗粒磨损度根本没有超过规定的指标)。这个也是最危险的,因为用户一般只会去看Smart信息来判断实际颗粒磨损度,并衡量这块SSD还有多久才需要更换,根本不会想到自己昨晚关机还好好的SSD,第二天起来一开机,整个SSD都可能找不到了的情景。(勤备份是好习惯)相比固件问题造成的损坏数量,颗粒等外在的问题要少的多(但也不能忽视)。

固件的稳定性需要经过长时间的考验,毕竟固件开发厂家内部的兼容测试平台只占了全世界用户各种兼容机里的冰山一角,测试时候跑的各种脚本和实际用户使用还是会有很大出入的,最后各种千奇百怪的问题都可能会在你身上发生,那么厂家固件的后续支持也变得非常重要。(新固件解决问题的同时,可能还会带来意想不到的性能提升)

固件的稳定性一般可以去各大网站,论坛查看用户的评价。(当然自己还是要有一点判断力的)闪存晶元制造厂的SSD稳定性一般都不错,因为他们最了解自己的产品,可能还知道自己颗粒内部的特殊参数,在稳定性测试上会占有绝对优势。最后我也强调一点,对于ES标记的主控我的态度也是不建议去购买,即使厂家说已经通过了最终测试,甚至主控厂允许封装厂打磨掉了ES标,但是数据丢失的风险是用户去冒,抢新品多出的钱也是用户去出,傻傻的用户变成活生生的帮厂家测试的小白鼠,厂家却是收钱走人。PCEVA在2个月前曾今报道过OCZ Vertex 3 采用ES主控的问题,如今采用SandForce 2xxx系列主控的问题开始浮现(可能是新固件和硬件兼容问题,也可能是公版PCB设计问题),速度再快的SSD,买回家却每天只能对着随时蓝屏的电脑,我相信是没人会想这样吧。


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

第三部分: 产品的包装和内部拆解




M4 128G 包装图


正面裸照


背面裸照


256G正面裸照


256G背面裸照

除了M4 64G外128G/256G/512G SSD的外部缓存颗粒型号皆为D9LGQ(64G为D9MNQ - 128MB DDR3 1600 CL-11)
,我们去镁光网站查一下这颗外部缓存的参数:

镁光FBGA查询



输入D9LGQ,得出真实型号:MT41J128M16HA-15E:D




查找MT41J128M16HA-15E:D后得知,这是一颗2Gb = 256MBDDR3 颗粒。同时我们发现128GBM4,内部总共16颗型号为29F64G08CFACBNAND颗粒。



属于IML73A家族的成员,单颗容量64Gb=8GBMLC颗粒,TSOP封装,接口速率166MT/s,符合ONFI2.2标准。从更进一步的产品Datasheet里得知,这个颗粒的内部page4KB的,单个芯片容量为32Gb=4GB,那么就是说128GM4采用的29F64G08CFACB颗粒其实内部封装了2颗芯片(Die)。



256G的M4,内部总共16颗型号为29F128G08CFAAB的颗粒。

属于IML74A家族的成员,单颗容量128Gb=16GBMLC颗粒,TSOP封装,接口速率166MT/s,符合ONFI2.2标准。从更进一步的产品Datasheet里得知,这个颗粒的内部page是8KB的,单个芯片容量为64Gb=8GB,那么就是说256GM4采用的29F128G08CFAAB颗粒其实内部封装了2颗芯片(Die)。




M4 64GB 采用的是单面PCB,8颗(29F64G08CFACB)L73A(2 die)闪存组成64GB 8通道 每通道 2Die (1 Bank)
M4 128GB 采用的是双面PCB,16颗(29F64G08CFACB)L73A(2 die)闪存组成128GB 8通道 每通道 4Die (2 Bank)
M4 256GB 采用的是双面PCB,16颗(29F128G08CFAAB)L74A(2 die)闪存组成256GB 8通道 每通道 4Die (2 Bank)
M4 512GB 采用的是双面PCB,16颗(29F256G08CJAAB)L74A(4 die)闪存组成512GB 8通道 每通道 8Die (2 Bank)

从上图的解析后进行纯理论性能分析:

M4容量    Die数量/颗粒数量     Page/Block大小            CE数量         

64GB            16/8                  4KB/1024KB              16
128GB          32/16                 4KB/1024KB              32
256GB          32/16                 8KB/2048KB              32
512GB          64/16                 8KB/2048KB              32

纯理论性能分析:持续读取速度这里每个容量的SSD都不是问题。从写入速度上来看,128GB的随机和持续写入是64GB的2倍(因为有2倍CE和Die),随机读取上64GB相比128GB会低一点点。256G的持续写入应该比同样CE和Die数的128G性能提升50%以上(8KB的优势),而随机读取性能会受到大Page的影响,跑4KB的话会不如128GB的性能那么好,不过可以靠固件算法慢慢弥补并接近,大Page造成的随机写入影响可以被缓存优化掉,所以不受影响。512GB由于CE数和256GB相同,持续无提高,随机会受到更多因素影响,不如256GB性能强。


M4的主控采用的还和C300一样的Marvell 88SS9174,只是后四位换成了BKK2,下方第三行从A2P变成B1P(步进?)

这个主控内部是2颗ARM9处理器,1颗负责主机请求,另一颗负责闪存请求,主控为8通道。主控下方和PCB背面的应该是DC-DC转换电路。


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

第四部分: 产品的标准测试部分


评测硬件环境和软件设置:

处理器: i7 2600K
主板: GIGABYTE P67A-UD4-B3
内存: Gskill Trident 6G-kit DDR3 2000
显卡: Inno 3D Geforce GTX295 PCIE 16X
声卡: ASUS ESSENCE STX  PCIE
扩展卡: ASUS U3S6 PCIE 4X
硬盘: OCZ Vertex LE 100G (FW 1.11)由于这块盘被我折腾过头,型号已经变成SandForce了,丢失了OCZ的序列号和型号信息。
GSKILL FALCON 128G (FW 2030)第一版的barefoot主控,颗粒是三星50nm的。
WDC WD10EADS-00M2B0 1TB (FW 01.00A01)
Crucial C300 64G(FW 0007)
Crucial M4 128G & 256G ( FW 0001)

软件环境:
操作系统:WIN7 Ultimate 64bit Sp1
主板BIOS: F4.
磁盘驱动: Intel Rapid Storage Technology 10.5.1.1001文件: IASTOR.SYS
评测使用软件介绍。
基本组: HDtune, ATTO Disk Benchmark.
进阶组: AS SSD Benchmark,CrystalDiskMark.  PCMARK Vantage.
高级组: IOMETER-1.1.0-rc1-win32.i386-bin. PCMARK 7 Storage Suite
SMART分析:CrystalDiskInfo
底层性能检测:hIOmon, Diskmon


产品基本测试组:(使用基本评测软件和进阶评测软件





我们先来主板
BIOS里开/关节能对SSD的影响



如图为开启节能



如图为关闭节能


Crucial 128G 测试


开启节能后的HDtune 64KB 默认块成绩:(空盘)






关闭节能后的HDtune 64KB 默认块成绩:(空盘)





64KB读取部分,可以看到开启节能时读取延迟为0.41ms,平均传输率为376.4MB/s,关闭节能时读取延迟为0.32ms,平均传输率为404.5MB/s,测试图形都是一根比较平的直线,这个速度差距是因为当主机往SSD主控发送指令需要读取某段地址的数据请求后,由于主控发现这个地址上并没有任何数据(物理介质 - NAND颗粒上没内容),所以就直接从主控返回主机,而主机认为指令已经完成,那么这里测的就是SSD的纯接口速度了,而接口速度的快慢,就是由于节能造成的读取延迟影响了。
64KB写入部分,可以看到开启节能时写入延迟为0.147ms,关闭节能时写入延迟为0.143ms,从波形和传输率上,开了节能比较悲剧,跳上跳下的非常不稳定。就类似CPU频率跳上跳下的感觉。


开启节能后的HDtune 8MB块成绩:(空盘)




关闭节能后的HDtune 8MB块成绩:(空盘)



从HDtune的8MB测试读取上来看,也是关闭节能的延迟低造成传输率更高(接口传输率)。 我们也得知,在当前这个平台上,SATA 6Gbps的接口传输率封顶也就是这个数字了 52xMB/s。(如果你对PCIE超频,接口速度理论会再提高点)


开启节能后的HDtune 读取Access成绩:(空盘)



开启节能后的HDtune 写入Access成绩:(空盘)




关闭节能后的HDtune 读取Access成绩:(空盘)



关闭节能后的HDtune 写入Access成绩:(空盘)



从上面2张IOPS的图中看:
读取部分,一律是关闭节能强,强就强在延迟低,造成接口速度高。(虽然都是假的)
写入部分,开启节能的在512B和64KB测试里胜出,别的都是关闭节能强,但是差距都不大,如果说这里512B和64KB是写入数据缓存造成的误差则更贴切,特别看64KB,我们知道128G M4的持续写入在18xMB/s附近(之前测64KB写入),但是这里的速度可是227MB/s和245MB/s哦,如果不是缓存作怪,又如何去解释哪?软件bug?反正HDtune对SSD的这类测试本来就不靠谱,或者说目前没有啥测试软件靠谱的,各位玩家就当随便看看。


接下来我们来做ATTO测试

开启节能后的ATTO QD1成绩:(空盘)



开启节能后的ATTO QD4成绩:(空盘)



开启节能后的ATTO QD10成绩:(空盘)



关闭节能后的ATTO QD1成绩:(空盘)




关闭节能后的ATTO QD4成绩:(空盘)




关闭节能后的ATTO QD10成绩:(空盘)



ATTO作为一款纯秀持续速度的软件,成为各大U盘,闪存卡,SandForce这类压缩主控SSD的必测软件之一,实话说我是一点都不喜欢。因为他除了能测出你这个SSD的实际最大速度外,实在没有啥有意义的地方。(其实早先我用ATTO是来测机械盘NCQ能力的)上面开了节能和没开节能在QD1下,差距比较明显,但是随着QD的增加,差距被慢慢弥补了,但是不管如何,从上图可以看出,开了节能后写入最大速度总是达不到不开节能大写入最大带宽的。(影响还是存在的)



接下来我们看进阶组的
3款软件,为啥叫进阶组?实在是因为上面这2款基本组的软件不给力啊,太容易被厂家利用,跑出超乎想象的高分,拿来忽悠用户。


Crystal DiskMark测试:

开启节能后的CDM 100MB数据大小成绩:(空盘)





开启节能后的CDM 1000MB数据大小成绩:(空盘)



关闭节能后的CDM 100MB数据大小成绩:(空盘)



关闭节能后的CDM 1000MB数据大小成绩:(空盘)




CDM的测试中看到几点:


1. M4并没用大容量缓存来缓存非常多的数据,因为100MB和1000MB测试区块下成绩没区别(纯误差)。像之前JMF612,JMF618等某些主控,有着非常大的缓存(128MB~256MB),用CDM跑测试的时候,50MB/100MB测试成绩很好看,但是一到1000MB以上,由于测试文件容量大过缓存,命中率大减,反而带来延迟,造成成绩爆降,特别是4KB随机写入的成绩会跌出很多,那类SSD的安全系数就相对偏低,万一掉电,数据缓存里的大量数据就危险了。
   2. 开启节能和没开启节能对速度影响还是有的,特别是随机和小文件测试部分差距更明显(寻址延迟造成的区别相比接口延迟更大)。



AS SSD Benchmark 测试

开启节能:(空盘)



关闭节能:(空盘)



AS SSD和CDM的测试类型应该是比较接近的,但是软件发送指令的延迟可能稍微偏高,造成成绩不如CDM那么好看。而且由于数据模型非常难以压缩,造成类似SandForce之类的主控无用武之地(成绩难看很多,所以厂家不喜欢测给你看),当然这对原本就不使用压缩技术的M4来说,完全没有任何负面影响了。(图中右边测试压缩率的图形,显示M4根本不懂啥叫可压缩和不可压缩。^_^,而上面复制文件速度的测试,也显示了关闭节能确实强过开启节能)。


进阶组的最后款软件就是PCMARKVANTAGE 测试。


开启节能:(空盘)




关闭节能:(空盘)




这款软件还是比较实际的,基本能反映出SSD的性能到底如何,但是和所有的测试软件一样,他落伍了,对于新品SSD来说,他显示出来的差距太明显了(关闭和开启节能差了整整1/4),所以自然就要被新一代的PCMARK7取代了。


高级组 PCMARK 7 测试


开启节能:(空盘)



关闭节能:(空盘)




我们看到和之前的所有测试软件一样,开关节能误差并不大,而不像PCMARK VANTAGE那样显示差距了1/4那么可怕。
不管如何,从这些测试中,我们得知了主板BIOS里的设置会直接影响SSD的性能的发挥,并不是之前很多人认为的,节能只是节能CPU,不会影响别的部件的性能。




SATA 3G 测试部分 (关闭节能)







很多用户觉得自己主板不支持SATA 6G模式感觉用M4这类SSD浪费,其实M4在P67的SATA 3G接口上跑测试速度也不慢,如果用户主板目前不支持SATA 6G模式,并不会影响太大,原生南桥的低延迟性能应该会强过某些第三方SATA 6G芯片的带宽优势(Marvell 912x家族封顶39xMB/s)



Crucial 256G 测试


关闭节能后的HDtune 64KB 默认块成绩:(空盘)





HDtune 默认读取部分,128G和256G的没有任何区别,但是写入上,256GB的性能高了100MB/s多,但是我们发现延迟也高了不少。


关闭节能后的HDtune 8MB块成绩:(空盘)



HDtune 8MB块 读取部分 也是没有任何区别(都是接口速度)

关闭节能后的HDtune 读取Access成绩:(空盘)



HDtune 读取access部分 也是没有任何区别(误差范围)

关闭节能后的HDtune 写入Access成绩:(空盘)



HDtune 写入access部分 256G强过128G不少(缓存因素干扰,512B和64KB实际表现不清楚,当然256G持续强是肯定的)

关闭节能后的ATTO QD1成绩:(空盘)



关闭节能后的ATTO QD4成绩:(空盘)



关闭节能后的ATTO QD10成绩:(空盘)



ATTO测试看看就好,反正就是撑爆SSD接口带宽用的,不用当回事。

Crystal DiskMark测试:

关闭节能后的CDM 100MB数据大小成绩:(空盘)



关闭节能后的CDM 1000MB数据大小成绩:(空盘)



CDM测试,256GB的4KB随机读取比128G的低了大约20%(8KB page影响),随着QD上升后差距消失,但是写入速度上256G全部领先(缓存弥补4KB写入随机,镁光SSD的读取是没有缓存优化的)

AS SSD Benchmark 测试

关闭节能:(空盘)



ASSSD和CDM表现出来的情况相同,256G重写入,128G重读取,在实际复制文件速度上256G因为写入高而领先。

PCMARK VANTAGE 测试 关闭节能:(空盘)



2个SSD的表现都在75000~76000之间,应该说是不分上下,256G在视频编辑之类靠着写入领先部分,程序加载上128G领先一点点,真的很难区分。

PCMARK 7 测试 关闭节能:(空盘)




PCMARK 7上表现也是128GB的比256G的稍强点,主要体现在程序读取上,这个是颗粒限制,暂时没办法改变。
---------------------------------------------------------

第五部分: 产品的新特性

不知不觉这颗M4陪了我也不少时间了,每个主控和算法都有自己独特的地方,拿我来说,我感觉能够去找出这些特性比跑个分秀个图有趣的多了。下面就来说说这段时间的小发现吧。



1M4的缓存机制沿用了企业级的P300的部分优化?


http://www.micron.com/products/solid_state_storage/enterprise_ssd.html


在官方网站的这个链接里的FAQ部分有这么一段话(镁光企业级SATA SSD P300介绍)



问:当禁用缓存时,SSD性能降低了,尤其是写入性能,这是为什么?
答:对于任何写入密集型应用,缓存(典型的DRAM)明显快过NAND闪存速度,所以打开写入缓冲能够提升SSD的性能。然而,对于一些以数据完整性为重的应用,禁用P300的缓冲相比别的SSD造成的写入性能下降影响明显小很多。



如果在系统里关闭写入缓存,那么测试结果会如下图这样:




我们看到QD32下的写入速度,M4明显有做优化,而C300关闭缓存后就和QD1没有任何区别了。根据之前这段话,这个应该是从企业级产品P300上沿用下来的优化,关闭缓存保证更高数据可靠性的同时,高QD下仍然有高性能。由于缓存的关闭,映射表变成直接由颗粒上来提取到主控cache内,造成了延迟增加,尤其是随机性能,全部都明显降低了。



2:25nm的纯颗粒速度慢了34nm颗粒不少:


关闭缓存优化,并且把全盘填满,让Access测速访问得到的数据更精确,相同平台下(保证接口延迟相同),4KB读取访问上25nm 8K Page 颗粒比34nm慢了整整0.4ms.512B写入访问上慢了0.3ms。

4KB Page 25nm (128G M4) 读取访问上比34nm的慢了0.1ms(比8KB Page的好不少)

开启缓存优化,并且把全盘填满,让Access测速访问得到的数据更精确,相同平台下(保证接口延迟相同),4KB读取访问上和之前没有变化(镁光SSD没有预读缓存优化),512B写入访问上M4 256G大提速,明显比C300优化的好。



4KB Page 25nm (128G M4) 读取访问不变,512B写入访问上比M4 256G表现更好。


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

第六部分: 产品的极限测试部分  (关闭节能)


     1. M4 128G 的 满盘性能下降情况

   

   



我们看到除了99%的情况下,基本都没有变过速度,看来M4优化的不错,内部可用空间的降低对速度的影响并不大。这里我用来填充的文件是windows目录和programfiles目录里的大量零碎文件。




AS SSD测试下,QD64 写入上受到明显影响,和CDM的99%情形相同,这是因为每个通道每个块上都没有比较大的连续空闲空间来给M4做多通道并列传输的优化。既然M4容量填充满性能下降并不多,那么怎么样才能把M4性能拉下水?那就是所有SSD都怕的东西,碎片。

2. M4 128G 的 Worst Case (最坏情况下的性能 - 业内称为稳定态,企业级产品的要求)



稳定态是如何形成的?用随机的文件完全打乱SSD内部每个Block内page的顺序,造成全盘都是文件碎片的情形,在这种最悲剧的环境下,纯靠着SSD主控制器的能力和特有的算法来处理,即可测出这个SSD的最坏情况下性能。





我特地用IOMETERM4进行了2次全盘总共40小时的随机写入填充,写入的文件为40% 随机4KB非对齐30%随机16KB非对齐30%随机64KB非对齐QD32下让M4进入稳定态。



这个是刚开始时候的传输率,有52.16MB/s,最大延迟32.2569ms





这个是17小时候的速度,传输率13.13MB/s,最大延迟达到1407.2310ms.





这个是接近20小时时候的速度,我们看到传输率在13.19MB/s,最大延迟提高到1673.225ms,但是速度在3小时里基本没变,所以可以判断为稳定态了。



进入稳定态的M4成绩是如何的?



稳定态HDtune 64KB默认读取测试




稳定态HDtune 64KB默认写入测试




稳定态HDtune 8MB块读取测试



稳定态HDtune 8MB块写入测试




稳定态HDtune 读取Access 测试



稳定态HDtune 写入Access 测试




HDtune总体成绩都大受影响,特别是写入,最大延迟时间非常大。这一切都是因为盘上的数据都是随机的零碎小文件,基本说是没有比现在再差的情况了。但是从之前的写入测试那里看到,一开始的地方速度有回升,说明了OP的重要性,M4OP区域容量里,性能基本已经全部恢复了。(老实说,M4恢复能力太强,多跑几次CDM这类测试,性能就基本都恢复了。因为测试生成的文件是持续的,打乱了造成稳定态产生的随机文件组合。)






在稳定态下,所有之前的那套理论全部不通用,QD32写入比QD1低,而QD64的写入更低,道理很简单,盘上所有颗粒的每个块里都是随机文件产生的碎片,做垃圾回收的效率自然是低的可怜,多通道的利用率根本发挥不出(每个通道的颗粒上都是碎片,都是需要先垃圾回收才能再利用),那么QD32或者QD64反而变成了一种负担,这个情况下就像我们在机械硬盘上一下子开100个程序的速度不如1个个打开了。(机械硬盘在同一时间只有一个磁头干活的道理)




PCMARK Vantage的分数也跌了55%以上,不过还是强过我当初测的C300 64GB。(看来PCMARKVantage的磁盘测试真的不适合如今的主流SSD了)



PCMARK 7的分数看起来跌的并不多,当今SSD要在PCMARK 7上拉开差距都非常难,成绩相差100分就已经是1个档次了,所以应该说还是有很明显的下降的.(不过这里是稳定态情况,除了这里的测试,大家应该是碰不到这个情况的,同时反映出了M4的强劲性能)



细心的朋友应该看到我前面说,我跑了2次稳定态花了40小时,但是这里我只给了20小时的第一次稳定态成绩。答案现在就告诉你们,因为M4的恢复力实在太强,第一次我想偷懒,不识好歹的以为在系统里用命令行禁用Trim,然后格式化就行。(某些测试需要没有分区,某些测试又必须有分区)。结果没想到当我格式化后,我发现了一个残酷的现实。。。M4性能完全恢复了。。我的20小时稳定态白做了。悲催啊,继续让机器开通宵跑稳定态。


第二次我就乖乖的用光盘引导进入WinPE里,用diskgenius软件分区对齐并格式化来避免Trim让整个盘恢复性能。








下面给你们看下M4从稳定态恢复的情形。。。为了验证第一次自己的粗心,特地在第二次做Trim的时候做了下截图。





这是在稳定态下的HDtune读取测分。分区已经格式化,但是是在PE下格式化的,所以虽然分区里显示容量是空盘,但是物理颗粒里都是文件碎片。




然后我使用了ForceTrim软件,对整个M4SSD进行了全盘空闲容量的Trim指令发送,并同时开启HDtune读取测试,大约在发送完指令后的2秒后,HDtune的测速曲线一下子从之前稳定态的平均19xMB/s跌到1MB/s都不到,这个时候我知道整个SSD在做内部垃圾回收了。




继续第二张截图,发现SSD一直以这个速度保持着直到测速结束,并且给出了57.8ms的夸张寻址时间。




又过了大约20秒,我看到SSD的硬盘灯不闪烁了,就跑了次HDtune测试,性能就这样完全恢复了。这就是M4配合Trim之后的完美恢复能力。。。悲催的我第一次20小时稳定态就是这么被干掉的,白白牺牲了40个左右的P/E。(相当于制造一次128GM4稳定态需要写入大约5TB的随机分区不对齐小文件)一般用户使用可以说是永远不会碰到这个情况的,而且要恢复性能也实在太容易了。



3.拔电源测试:

本测试我在M4 128G系统盘里放了20个视频文件和字母(幽游白书1~20),往E盘(256G M4)复制,复制中我会拔256G M4电源。



开始复制



拔掉256G M4电源



插入256G M4电源



打开256G M4查看之前复制到哪里。









之前的没问题,而从11话开始到最后复制到的14话,都有损坏(画面花),而且能播放的部分越靠后的话越少,14话索性不能播放。

由于SSD内部采用多通道来提升持续速度,而这些文件应该是通过多通道技术存放在不同的通道内的颗粒里,那么如果忽然掉电,并不是只有最后话损坏,之前靠近的也会有损坏。


4.掉电测试:



电源键按5秒关机,重启后没问题。





系统盘拔SATA电源,系统死机,接着蓝屏,重启后没问题。




系统盘文件复制中拔SATA电源,文件复制终端,系统死机,接着蓝屏,重启后没问题。




安装系统更新拔SATA电源。重启后显示之前3个更新都没装上,但是当我点更新后,除了之前最后个IE9没装上外(掉电时刚开始安装),另外2个瞬间就装完了。

我个人测了大约拔了10多次电源,都没有任何问题,对M4的固件稳定性还是蛮满意的。

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

第七部分: 产品的使用部分



1. S.M.A.R.T,全称叫Self-Monitoring, Analysis, and Reporting Technology "自我监测,分析和报告技术"。可以用来预测分析硬盘的潜在问题。


说道硬盘故障,分为忽然性和渐进性2种:

前面种很难防止,没有任何迹象,比如芯片烧了,硬盘摔了或者人品不好之类的。要防止只有多做备份了。
渐进性的故障是随着时间慢慢发生的,比如声音出现异常,可能是主轴马达磨损,硬盘逐渐老化出现读取困难等,在SSD上主要指颗粒磨损度,不可修复错误数明显增加等。

对于渐进性的故障,我们可以靠着SMART数据发现点有用的信息。

这里要注意:

机械硬盘的SMART表定义已经有自己的标准,由于硬盘厂很多,很多厂家属性的名字也不尽相同,或者某些厂牌缺少某些属性,但是同个ID的定义是相同的。

固态硬盘的SMART表定义则目前还没有统一标准,不同厂家甚至不同主控都有可能出现相同ID不同定义,所以用一般的SMART软件查看是没任何意义的,虽然你可以看到值,但是这个值对应的ID解释可能完全不是那么回事。


Crucial M4 / C400 / C300 的Smart信息如何看


使用软件Crystal Disk Info.下载地址: CDI下载地址



简体中文汉化不完全无法显示SMART信息(都是未知),繁体中文可以显示。这里以英文版介绍:

ID: 对SSD来说,ID显得不是那么重要,为什么之前也说了,厂牌之间定义不同,不过下面为了解释方便,我还是以ID为准。


Attributes: 相对应ID的属性,和ID一样,由SSD厂商定义。

THRESHOLD(阈值/临界值)、CURRENT(当前值)和WORST(最坏值):当前值低于最坏值时候,硬盘处于警告状态,SMART向系统报告,这时候应该记得备份数据。

RAW VALUE (数据) : 更详细的数据,由各家厂自定义


ID                        属性                                               解释              

01                      Raw Read Error Rate                          底层数据读取出错率

05                      Re-allocated Sectors Count                 重映射坏块数

09                      Power On Hours Count                       累计加电时间(单位小时)

0C                      Power Cycle Count                             设备通电周期

AA                  Grown Failing Block Count                   使用中新增坏块数

AB                  Program Fail Count                             编程错误计数

AC                  Erase Fail Count                                 擦除错误计数

AD                 Wear Leveling Count                          颗粒平均擦写次数

AE                  Unexpected Power Loss Count            不正常掉电次数

B5                 Non-4k Aligned Access                       非4KB对齐访问数

B7                  SATA Interface Downshift                  接口降级次数计数(SATA 6G <-> SATA 3G)

BB                  Reported Uncorrectable Errors            不可修复错误计数

BC                  Command Timeout                            指令超时计数

BD                  Factory Bad Block Count                    出厂坏块计数

C4                  Re-allocation Event Count                  坏块重映射事件计数

C5                  Current Pending Sector Count           值永远为0

C6                  Smart Off-line Scan Uncorrectable Error Count     自检时发现的不可修复错误

C7                  Ultra DMA CRC Error Rate                 主机到接口之间传输CRC错误率

CA                  Percentage Of The Rated Lifetime Used   剩余寿命(MLC 3000(25nm)/5000(34nm) SLC 100000计算)  百分比从100开始跌

CE                  Write Error Rate                               数据写入出错率



这里面注意的几个地方:按照上图我的128G M4 SSD来看,AD的值为108 “颗粒平均擦写次数” ,那么就代表我的颗粒磨损度为108(次) X 128G(全盘容量) = 13.8TB磨损 ,108次占了25nm官方规定的3000次的3%,所以健康度显示97%,CDI里的AA值目前为0,说明没有出现新增坏块数。AC 擦除错误计数这个值我这里有2000多很高,因为我跑测试时候做了很多次Secure Erase操作,每次操作都可能会擦除到坏块区域。(出厂坏块,因为这里我没有新增坏块),所以造成了数字很大,不用担心。B5的值代表非4KB对齐访问数,很多人看不懂,我分区对齐了为啥还是那么大,这里我强调下(分区对齐,不代表数据访问是对齐的,数据的长度是对齐的,所以不用去担心这个值,应该是镁光工程师留给自己看的)。


镁光的Smart信息里用平均磨损次数来表示耐久度损耗,这样的好处是因为能够真正反映颗粒当前的耐久度,而不是类似很多主控显示的Host Write(主机写入)值,因为那样只是说明主机请求写入的数据量,经过SSD主控处理后,加上写入放大,磨损的颗粒耐久度实际会明显大于显示的数据量。(也就是不准确)另外,这类Host Write表示的值会漏掉一个问题,很多朋友都喜欢使用Secure Erase操作来恢复性能,却不知道,这个操作做一次就是代表全盘颗粒P/E磨损度加1,你看我这块SSD为什么没用多久AD就那么高,除了因为稳定态测试造成的原因外,就是因为Secure Erase造成的(我做了不下20多次)。这样做一次在镁光SSD的AD上会加1,但是类似Intel SSD的SMART值Host Write上却不会有任何变化,说的直点,拿块SSD回来,连续做个几千次Secure Erase,可能Host Write还没多少数据就弄挂SSD了。



2
. Windows 7 的安装部分(视频)




上面我使用微软的windows download tools制作了一个USB启动安装win7的视频,我们看到加上自检(我的机器自检比较慢,相机视屏功能不太会玩,见笑了。),全部加起来不到9分钟。


SSD安装Windows 7的建议:


1.BIOS里有AHCI功能的坚决开启,芯片组的AHCI驱动可以安装完系统后再装。

2.安装Windows 7时,建议拔掉所有硬盘之类的设备,只保留安装盘和光驱。(确保引导分区写入正确的硬盘内,最重要的是让系统识别安装盘为SSD,这样就能自动禁用磁盘整理等等为HDD做的优化)

3.安装Windows 7时,建议删除硬盘上所有的旧分区,用Windows 7来创建新分区。(默认创建的都是主分区,如果要创建逻辑分区,我建议在安装完系统后在系统里再用Diskpar命令操作)


按照这样3部操作后,应该安装起来会非常顺利,系统干净安装后,之后的驱动安装和软件安装应该非常容易的,这里就不做解释了。在我的平台上,M4 128G 0002固件没有出现任何不稳定现象(蓝屏,卡机问题),目前使用状况非常好,明显感觉到比C300 64G的提升,当然这也可能是新安装系统的缘故。


3.SSD的完全擦除操作如何做最简单?


1.使用我修改的Intel toolbox程序(绿色版)  

2.选中挂从盘上并且没有分区的SSD。(这里是256G M4)



3.Intel SSD Optimizer(优化那里红色是因为要分区不要管)。下面Secure Erase我们要做的操作,这里红色表示ATA Secure功能开着,不能操作。



4.现在我退出软件,并拔掉了SSD的SATA电源线,等待5秒钟,再接上电源然后再次运行软件,显示如下图。


RST检测到SSD拔掉




RST检测到SSD插入



5.点击Run等待完成(大约30秒~1分钟,取决于SSD容量)



我们看到SMART信息里AD的值加了1,代表全盘Erase了次,所以P/E磨损平均加了一次。




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


第八部分: 测试总结部分



到目前为止,Crucial M4(0002固件)的优点和不足:


1.固件的演算方法上明显感觉到相比上一代产品的提升,很多之前没做的优化都有改进,Trim后性能恢复速度非常快,应该来说更适合普通家用级。(优点)

2.相比软件上的进步,硬件上显得有点不给力(主控只改了步进,25nm颗粒也拖了不少后腿,TSOP封装的电气性不如上一代BGA封装的好),不过工艺进步是趋势,这部分只有靠单位容量性价比来弥补了。(缺点)

3.Crucial M4的性能表现目前看来不如SandForce 2xxx系列主控,如果说因为25nm工艺颗粒的原因造成写入速度无法继续提升,读取速度上还保持在4xxMB/s的指数上却是有点弱了。(上一代C300是以读取破355MB/s为卖点的)本次测试从HDtune上看到M4的接口传输是有超过500MB/s的实力的,希望今后厂家固件更新能再优化下,让M4达到5xxMB/s的读取实力,再一次站在SATA接口SSD读取之王的宝座上。(我个人的建议,需要厂家改进)

4.Intel的低端320系列也有掉电保护(25nm的8M门发生概率反而比上一代更多,看来掉电保护还需要新固件来磨合下,目前还很有问题),SandForce 2xxx系列主控也可以根据厂家需求来增加掉电保护选项(目前看来消费级成本考虑还没有),而Crucial M4 SSD却完全没有考虑加入掉电保护,的确是另一个不足(虽然镁光的演算方法上加入了忽然掉电后数据的完整性检查和修复映射表功能,SSD的稳定性非常不错),但是并不能保证用户最后一笔数据的安全。(不足)

5.Crucial M4 256GB和512GB由于新工艺颗粒8KB Page的关系,造成了4KB测速时的性能下降(我们日常操作4KB占的比重确实不少),希望今后的固件能再竟可能进行下优化来减少和128GB的差距,不然会造成很多用户产生纠结,也不符合256G和512GB的身份。我也知道今后大容量SSD的Page大小只会越来越大,不过这也是对固件开发者的技术考验。(我个人的建议,需要厂家改进)


本文最后,感谢提供本次M4 128G和256G 测试品的信维公司,感谢本站管理员石头提供平台,感谢在学习中帮助过我的各位朋友。

本帖子中包含更多资源

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

x

评分

参与人数 9活跃度 +426 收起 理由
Arsenal + 50 学习ing
liwenchao + 5 精品文章
xiahait + 20 原创内容
flight8848 + 50 还要慢慢再看几遍……
PC_Max + 50 围观神作诞生。
世纪冰雷 + 100 浴总2011大作。细品。
luckissy + 1 精品文章
jasu30 + 100 超级给力
overthink + 50 学习了一天,懂了一点

查看全部评分

2#
tux2049 发表于 2011-6-12 21:15 | 只看该作者
非常期待啊
3#
James007ss 发表于 2011-6-12 21:20 | 只看该作者
本帖最后由 James007ss 于 2011-6-13 13:52 编辑

喜欢钻研的可以细读。其它只关心跑分成绩的不看理论也没所谓,直接跳中间了。

M4V5啊 ,有TRIM的情况下,恢复力无敌,现在除非是还在用古董老机或者非要组RAID的纠结帝,否则想要没TRIM可不容易,没自动都有手动啦。
4#
kinno 发表于 2011-6-13 01:31 | 只看该作者
本帖最后由 kinno 于 2011-6-13 01:34 编辑

浴室的视频肯定会让镁光口碑大涨,再顶。
话说看见全自动生产线还是比较激动的,高端

~~~~~~~~~~~~~~~~~~~~
额,前面占的位置都被删除了,不好意思激动了点占多了,版主辛苦,那么晚还在
5#
aibo 发表于 2011-6-13 11:03 | 只看该作者
前排就坐

潜在的M4 256G用户。

看看8k-page的颗粒有啥软肋
6#
duo_luo 发表于 2011-6-13 11:17 | 只看该作者
先来占个位置。浴室辛苦了。
7#
lk111wlq 发表于 2011-6-13 13:11 | 只看该作者
SSD威武...  就坐,等学习
8#
dodo168vip 发表于 2011-6-13 13:14 | 只看该作者
浴室大帖,必须围观。
9#
zb68612 发表于 2011-6-13 13:53 | 只看该作者
看浴大的评测就像看论文一样的受益匪浅
10#
solonace 发表于 2011-6-13 14:17 | 只看该作者
这么难产的大文果然够长,辛苦浴室了
11#
solonace 发表于 2011-6-13 14:31 | 只看该作者
回复 4# kinno


    你一说浴室的视频大家估计第一反应都是浴室出境了{:1_311:},哈哈。实际看完视频配上那段音乐给人的感觉还真是震撼啊,高度机械化的生产,随生产线走动的摄像机拍摄真是一种节奏美,中国人只是在最后的封装测试阶段才出现,什么时候我们国家才能有这种高精密的设备生产能力什么时候我们才能是真正的强国啊,神马GDP都是浮云而已……{:1_347:}看完这个雷克沙的视频越来越喜欢这个牌子啦,广告做的不错啊,估计谁也没想到这么普通的一个IT产品背后的产生过程居然这么富有美感,赞一个
12#
badaa 发表于 2011-6-13 16:14 | 只看该作者
下一代又是什么样子呢
13#
wtq 发表于 2011-6-13 16:32 | 只看该作者
trim很强力,很好,不用hddearse了格式化就行。
14#
evawilim 发表于 2011-6-13 18:05 | 只看该作者
买个 128G的无压力了
15#
ach9999 发表于 2011-6-13 19:05 | 只看该作者
    每次看懂一点点
16#
James007ss 发表于 2011-6-13 19:10 | 只看该作者
回复 13# wtq


    不重装,没格式化的需要。即使系统不能自动支持TRIM,也有工具软件。
17#
expressx 发表于 2011-6-13 19:10 | 只看该作者
非常详细!感谢
18#
实况小子 发表于 2011-6-13 19:27 | 只看该作者
浴室大辛苦了! 不是说M4 会出新固件吗?
19#
neeyuese  楼主| 发表于 2011-6-13 19:30 | 只看该作者
是人都知道M4会更新固件,不过这个要等多久就不清楚了,不管如何,稳定比啥都重要。
20#
JOSN 发表于 2011-6-13 19:47 | 只看该作者
是人都知道M4会更新固件,不过这个要等多久就不清楚了,不管如何,稳定比啥都重要。 ...
neeyuese 发表于 2011-6-13 19:30



    请问下版主,我是比较喜欢3天2头重新装系统折腾的人,想入M4 64 请问平时C盘的写入量到是不大,无游戏辟,无软件辟 我是主板是790FX 性能上有多少的损失,有条件换平台的,需要换原生支持6G的板吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部