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

【原创】镁光C300 64G测试

  [复制链接]
neeyuese 发表于 2010-11-4 06:03 | 显示全部楼层 |阅读模式
点击数:96968|回复数:186
本帖最后由 neeyuese 于 2010-11-13 12:02 编辑

产品图片和介绍







盒子和盘的正反面,外加国内行货的保修贴,没这张贴纸就是水货了,特别注意哦





拆开来后正面,可以看到主控为Marvell 88SS9174-BJP2,这个主控内部是2个ARM9处理器,8通8位,10年22周产。
另外8个颗粒型号为0PB12 NW273



反过来,另外8颗0PB12 NW273加一颗外置缓存型号为00D12 D9LGQ。


这些型号代表啥意思?这就去镁光官网查去: 镁光颗粒代码查询网址

D9LGQ 缓存真实型号为:MT41J128M16HA-15E    颗粒datasheet

容量128MB,16bit位宽,1.5V,DDR3-1333的CL=9 内存颗粒。96-ball FBGA封装。

NW273闪存真实型号为:MT29F32G08CBCBBH1-12Q:B   颗粒datasheet还是机密文档。

我来解析下吧,这是个34nm封装,符合ONFI2.0标准,4GB的NAND颗粒,2bit MLC, 1个die,1个CE,1个R/B, Vcc: 3.3V (2.7–3.6V), VccQ: 1.8V (1.7–1.95V)。支持同步/异步模式,100-ball VBGA封装。同步模式下支持单通道166MT/s。正反16个组成64GB的容量。
Page: 4KB, Block: 256page, Plane: 2048block, Die: 2plane = 32Gb

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


由于X58南桥ICH10R不支持SATA 6Gbp/s,所以当初我买了块ASUS U3S6来支持USB3.0和SATA 6Gbp/s。正好这次测试可以用上。





PCIE 4X接口,让USB 3.0和SATA 6Gbp/s的带宽得到发挥。



The ExpressLane™ PEX 8613 device offers 12 PCI Express Gen 2 (5.0 GT/s) lanes

桥接芯片提供12根PCIE 2.0通道,每通道5.0 GT/s



nec d720200f1 , USB 3.0 PCIe Gen2 x 1 。




Marvell 9123。停产了,分支出3个型号:分别是88SE9128,88SE9120,88SE9125,datasheet

初期叫88SE9123的芯片有点瑕疵,主要是在PATA支持上有问题,所以已经停产了,上面3个新的型号就是从9123改革而来,目前新的主板上带的第三方SATA 6G都换成是9128了,默认硬件RAID模式。

从官方PDF里得知,91xx Support 1x PCI Express 2.0 interface (5.0 Gb/s)。所以Marvell 9123的接口带宽为300-350MB/s (60-70% of 500MB/s),这样的话接1个C300就正好占满带宽了。

接口外部带宽换算:

    * For PCIe gen2: 300-350MB/s (60-70% of 500MB/s)
    * For PCIe gen1: 150-175MB/s (60-70% of 250MB/s)
    * For PCI-X 64-bit 133MHz: 853MB/s (80% of 1066MB/s)

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

产品型号: Crucial RealSSD C300 64G 2.5-Inch SATA NAND Flash SSD

产品接口: SATA 6 Gb/s interface

产品标准和技术: 支持512B字节扇区工业标准,支持热插拔,支持NCQ 32深度,支持ATA-8规范,支持Secure erase,支持SMART。

64G型号官标性能: PCMark® Vantage: SATA 6Gb/s模式 40000分。 SATA 3Gb/s模式32000分。
           持续读取:SATA 6Gb/s模式 最高355MB/s SATA 3Gb/s模式 最高 265MB/s
           持续写入:  75MB/s
           随机4KB读取:SATA 6Gb/s模式 60000IOPS SATA 3Gb/s模式 50000IOPS
           随机4KB写入:15000IOPS
           读取延迟:SATA 6Gb/s模式 55μs SATA 3Gb/s模式 70μs
           写入延迟:SATA 6Gb/s模式 60μs SATA 3Gb/s模式 95μs

产品稳定性:MTBF: 120万小时。产品保修:3年。磨损算法:支持静态和动态。支持固件升级。低功耗。
产品耐久度:72TB。(测试环境:数据占全盘容量90%,数据包含:5% 4KB, 5% 8KB, 10% 16KB, 10% 32KB, 35% 64KB, 35% 128KB。 写入为50%持续和50%随机。) 按照365天计算,72TB = 每天写入40GB数据可以用5年。
操作温度:商用(0~70摄氏度)

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

SSD技术解释:(枯燥的理论,但是不得不说)

LBA(Logical Block Addressing)逻辑块寻址模式

我们知道硬盘上的一个数据区域由它所在的磁头、柱面(也就是磁道)和扇区(512B)所唯一确定。逻辑块寻址模式把硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,在访问硬盘时,由硬盘控制器再将这种逻辑地址转换为实际硬盘的物理地址。机械硬盘的逻辑-物理地址是固定的,因为它的读 /写单位相同,并且可以直接覆盖。而SSD就不行,因为NAND必须擦除才能写入(擦除是以块为单位),所以SSD物理地址必须经过转换才能用在现在的文件系统上。这个转换层叫做FTL。



SSD的读取,写入,擦除操作图示:




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



FTL(Flash translation layer)  闪存转换层





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

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

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








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


通常情况下,在NAND块里的数据更新速度是不同的:有些会经常更新,有些则不常更新。很明显,那些经常更新的数据所占用的块会被快速的磨损掉,而不常更新的数据占用的块磨损就小得多。为了解决这个问题,需要让每个块的编程次数尽可能保持一致:这就是需要对每个页的读取/编程操作进行监测,在最乐观的情况下,这个技术会让全盘的颗粒物理磨损程度接近并同时报废。

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

磨损平衡算法分静态和动态。动态磨损算法是基本的磨损算法:只有用户在使用中更新的文件占用的物理页地址被磨损平衡了。而静态磨损算法是更高级的磨损算法:在动态磨损算法的基础上,增加了对于那些不常更新的文件占用的物理地址进行磨损平衡,这才算是真正的全盘磨损平衡。目前家用SSD主控支持静态磨损算法的有:SandForce主控和Marvell 88SS9174-BJP2主控(也就是镁光C300用的主控制器)

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



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







把Block X和Block Y里的”有效“页复制到Block N里,然后擦除Block X和Y作为备用的”空白NAND“。

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

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

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

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




OP(Over-provisioning)预留空间




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

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

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

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

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




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

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

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

NAND需要先擦除才能再次写入数据,要得到空闲的NAND空间,SSD必须复制所有的有效页到新的空闲块里,并擦除旧块(垃圾回收)。如果没有Trim,意味着SSD主控制器不知道这个页是”无效“的,除非再次被操作系统要求覆盖上去。

Trim只是条指令,让操作系统告诉SSD主控制器这个页已经”无效“了。Trim会减少写入放大,因为主控制器不需要复制”无效“的页(没Trim就是”有效“的)到空白块里,这同时代表复制的"有效”页变少了,垃圾回收的效率和SSD性能也提升了。

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主控,在最坏的情况下写入放大可以达到20以上。如果是100%持续的从低LBA写到高LBA的话,写入放大可以做到1,实际使用中写入放大会介于2者之间。用户还可以设置一定的预留空间来减少写入放大,假设你有个128G的SSD,你只分了64G 的区使用,那么最坏情况下的写入放大就能减少约3倍。

影响写入放大的因素

许多因素影响SSD的写入放大。下面我列出了主要因素,以及它们如何影响写放大。

1. 垃圾回收(GC) Garbage collection    ---   虽然增加了写入放大(被动垃圾回收不影响,闲置垃圾回收影响),但是速度有提升。

这个比较特殊的算法用来整理,移动,合并,擦除闪存块来提升效率。

2. 预留空间(OP) Over-provisioning  ---  减少写入放大,好。(预留空间越大,写入放大越低)  

在SSD的闪存上划出一部分空间留给主控做优化,用户不能操作的空间。

3. TRIM   开启后可以减少写入放大,好。

一个ATA指令,由操作系统发送给SSD主控,告诉主控哪些数据是无效的并且可以不用做垃圾回收操作。

4. 可用容量   减少写入放大,好。(可用空间越大,写入放大越低)

用户使用中没有用到的空间,需要有Trim支持,不然不会影响写入放大。 (某些主控制器算法只支持对OP区垃圾回收,这样就不会影响)

5. 安全擦除 Secure Erase  减少写入放大,好

清除所有用户数据和相关元数据,让SSD重置到初始性能。

6. 持续写入 Sequential writes        减少写入放大,好

理论上来说,持续写入的写入放大为1,但是某些因素还是会影响这个数值。

7. 随机写入 Random writes  提高写入放大,不好

随机写入会写入很多非连续的LBA,将会大大提升写入放大。

8. 磨损平衡(WL) Wear Leveling    直接提高写入放大,不好

确保闪存的每个块被写入的次数相等的一种机制。



BBM(Bad block management)坏块管理



不管磨损平衡算法如何聪明,在运作中都会碰到一个头痛的问题,那就是坏块,所以一个SSD必须要有坏块管理机制。何谓坏块?一个NAND块里包含有不稳定的地址,不能保证读/写/擦的时候数据的准确性。坏块分出厂坏块和使用过程中出现的坏块,和机械盘的坏块表一样(P表和G表),SSD也有坏块表。出厂坏块的话,在坏块上会有标记,所以很容易就能被识别,后期使用中出现的坏块就要靠主控制器的能力了,一般来说,越到NAND生命的后期(P/E数开始接近理论最大值),坏块就会开始大量出现了。一般来说NAND出厂都包含坏块,不过厂商有个最小有效块值(NvB-minimum number of valid blocks),拿Intel的34nm MLC L63B来说,1个die上4,096个块里至少要有3,936个块是好的,从这上面可以知道,虽然出厂的NAND可能有坏块,但是厂商保证在正常生命周期里,好块数不会低于3936个块。而且每个die的第一个块地址(00h)在出厂时是必须保证好的。(ECC后,这个块必须有效)。NAND出厂前都会被执行擦除操作,厂商会在出货前会把坏块标记出来(厂商会在坏块的第一个页的SA区上打上标记。) 这样坏块管理软件就能靠监测SA区标记来制作坏块表。SA区(页中4096~4319的区域,用户不可访问,主要用来存放ECC算法,坏块信息,文件系统资料等。)由于在使用中会产生坏块,所以SSD的每次编程/擦除/复制等操作后都要检查块的状态。对颗粒的ECC要求也要达到厂商的标准以上(主控强不强,看ECC能力也是一个参考)。坏块管理和平衡磨损算法是必须的。



ECC - 校验和纠错

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




Interleaving  - NAND 交叉存取技术




交错操作可以成倍提升NAND的传输率,因为NAND颗粒封装时候可能有多Die,多Plane(每个plane都有4KB寄存器),Plane操作时候可以交叉操作(第一个plane接到指令后,在操作的同时第二个指令已经发送给了第二个plane,以此类推),达到接近双倍甚至4倍的传输能力(看闪存颗粒支持度)。


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


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

自用主机硬件配置:

处理器: i7 920 D0
主板: GIGABYTE EX58-UD4P
内存: 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的。
       SEAGATE ST350032AS 500G  (FW SD1A)
       WDC WD10EADS-00M2B0 1TB X 2 (FW 01.00A01)

软件环境:
操作系统:WIN7 Ultimate 64bit
主板BIOS: F14n.关闭所有关于节能的选项
磁盘驱动: 主板南桥 ICH10R ->  Intel Rapid Storage Technology 9.6.5.1001 文件: IASTOR.SYS
                                           微软Win7 X64原生AHCI驱动。 文件: MSAHCI.SYS 6.1.7600.20776
             ASUS U3S6扩展卡上的 Marvell9123(SATA 6G) ->
                                           微软Win7 X64原生AHCI驱动。 文件: MSAHCI.SYS 6.1.7600.20776
                                           Marvell 91xx系列AHCI驱动,文件:mv91xxm.sys 1.0.0.1045

评测使用软件介绍。
基本组: HDtune, ATTO Disk Benchmark.
进阶组: AS SSD Benchmark,CrystalDiskMark. PCMARK Vantage.
高级组: IOMETER 2010.
SMART分析:CrystalDiskInfo
底层性能检测:hIOmon


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

a. Marvell9123 空盘测试成绩: MSAHCI驱动



HDtune 默认 64KB 持续读取成绩。



HDtune 8MB 持续读取成绩。(这样就能看到这块SSD的最大读取能力)




Hdtune 64K默认持续写入成绩。很平稳的线条,在75MB/s附近,和官方标示相同。




读取IOPS测试下,基本符合一般的SSD标准。(老实说我对HDtune的这个测试感觉很不可靠,因为成绩和SSD的算法设计相关,测是目标速度,而非真实的SSD表现。)




写入IOPS测试,看到512B的表现比较糟糕,4KB却好的出奇。这估计是C300的写入算法对512B支持不好(算法是为4KB优化的,512B反而带来麻烦),可以看到平均访问时间反而是4KB的10倍,而最大访问时间却一样。由此判定,C300的SSD一定要分区对齐,不然随机写入性能会很低的,写入放大会大增。



ATTO单队列深度测试,就是QD1的速度。



ATTO默认测试,QD4。




ATTO 10队列深度测试,QD10。

随着队列深度的增加,小文件块的读写速度都有增长,这就是NCQ的魅力。文件块大了之后,达到主控带宽后,差距自然就看不出了。






分别测试了100MB和1000MB。可以看出2个测试情况下的差距基本可以忽略,这个说明这个成绩是过硬的,并非靠着缓存的命中率而达到的。
JMF612,JMF616,TOSHIBA等某些主控,有着非常大的缓存(128MB~256MB),用CDM跑测试的时候,50MB/100MB测试成绩很好看,但是一到1000MB以上,由于测试文件容量大过缓存,命中率大减,反而带来延迟,造成成绩爆降。




可以看出成绩比CDM稍低,但是还不算太离谱,复制文件测试的速度受限于64G型号的75MB/s写入速度,表现不是最让人满意(有钱上128G 的会好很多)。AS SSD和CDM测试我俗称"SandForce主控杀手",因为他们默认测试的“数据模型”都是非常难压缩的,对SandForce的压缩算法来说就是硬碰硬,很伤。



最“实际”的测试,官标40000,这里跑出35000多,我也不知道为啥,不过这个成绩老实说已经“不低”了,不相信?拿你自己的盘跑跑看。


b.Marvell9123 满盘测试:  MSAHCI驱动



接下来的测试,我先用IOMETER填写分区,如果我把分区全部填满的话,将不能进行CDM,ASSSD等测试,所以这里我只填写了55G附近,然后让 IOMETER 4KB 100%随机写入 QD32连续运行了2分钟,由于SSD会映射,这样等于是用4KB随机数据填写满了整个盘的剩余的物理区域。(逻辑区域55G)






首先看HDtune测试,这下子不管64K还是8MB块,这个速度都上不去了,对比之前空盘的平稳曲线,这里的曲线开始坑坑洼洼。说明持续的64 KB或者8MB测试在这块SSD里跑的很吃力,为啥?因为盘里数据是零碎的(碎片),小的(4KB)。这个速度基本反映出此盘在最恶劣情况下的读取性能了,实话说我感觉很强,不愧为SATA 6Gbp/s的以高读取为卖点的SSD,这种情况下还有这个速度。



相比空盘,这里的随机读取IOPS在小文件上并没有下降(那点误差不算)。随着块增大,小文件碎片效应带来了最大传输率破不了250MB/s。应该说在读取性能上,镁光C300是非常优秀的。





CDM测试,我分别测了100MB和1000MB。读取没区别,写入上1000MB出现了明显性能下降。



ASSSD和CDM如出一辙,只要关于写入的测试(测试范围大于1G),都是比较悲剧的。





ATTO也是,256MB的时候还行,到了2GB的时候写入就比较难看了。



PCMARK Vantage的分数也下降了1万分,但是仔细看成绩细项,还不算最糟糕,这个速度在作为系统盘的情况下还是能接受的。


接下来看看Trim的效果:





Marvell9123 MSAHCI驱动下,全盘格式化后等于全盘trim,速度就这样恢复了。

c. hdd erase后,接到ICH10R下空盘测试。驱动:Intel Rapid Storage Technology 9.6.5.1001





























接到主板ICH10R南桥后,发现延迟降低了,读取速度被SATA 3Gbp/s限制这是预料中的事。别的也没有特别突出的地方不是吗?相比先前Marvell9123 MSAHCI驱动下的空盘测试,这里的成绩看上去更有紧凑感,更中规中矩。但是要让我抛弃SATA 6Gbp/s的优势,我觉得还不能让我完全心服。不得不佩服Intel的原生南桥加上驱动确实做的好啊。


d.ICH10R 满盘测试:

和前面b那步一样,用IOMETER填写分区并用4KB随机100%写入2分钟。然后开始测试,想看看Intel南桥在这种情况下的表现。

先测了下CDM1000MB,结果如下:



不用说,在这种情况下,甭管你Intel还是啥都完蛋。别的我想也不用测了,只要是大于1G写入,肯定都悲剧。



接下来我直接格式化了分区,等了10秒,又跑了次测试,嘿嘿,成绩回来了,Trim来了。预料中的,Intel RST驱动本就支持Trim。



全盘格式化后(trim全盘)和Hdd Erase后测试HDtune读取有区别吗?自然有区别,看这里和之前c部分里的8MB HDtune 读取测试对比。区别自然是有的,这时候NAND上都是"无效"数据,而HDD Erase后盘上的NAND用户区是无数据,所以测速是有区别的。





为了验证Trim后性能恢复,特此跑了下AS SSD,果然分数基本相同。(全盘Trim和HDD Erase之间那点误差而已)


e. Marvell9123加Marvell 91xx系列AHCI驱动,文件:mv91xxm.sys 1.0.0.1045。

HDD Erase后,我又接上了Marvell 9123并更新了官方最新驱动,一块SATA 6Gbp/s的盘跑在SATA 3Gbp/s下总不是滋味吧。

之前测试了那么多,对这块盘的成绩基本心中已经有数了。所以我就直接跑了下AS SSD测试。



成绩很标准,在误差范围内。别的不用测了,大概就这程度了。

然后直接用IOMETER填盘并写入2分钟4KB随机100%数据。

接着跑HDtune:



怪了,前面部分和之前的MSAHCI/Intel驱动表现一样,为啥后部一下子拉高了?要把原因找出来。

一开始想是不是IOMETER的压力还不够大,继续写入5分钟的4KB随机。。(折寿啊。。)

再次跑CDM1000MB和HDtune,终于发现问题了。



那个突起的地方,就是SSD后部逻辑扇区没填满的地方,HDtune测试到那部分逻辑地址后,测试数据被映射进了内存区,因为驱动里有开启内存作为缓存的选项,爆发率就是内存做缓存后的性能。(Marvell驱动带)

既然知道了答案,我再看看这个驱动支持不支持Trim?全盘格式化后立马测试。



官方驱动,完美Pass Trim!!!


f. 我又测试了下MSAHCI下的Intel ICHR





MSAHCI驱动在ICH10R上PASS Trim.

测试软件评测总结:

Trim支持的问题,相信各位也都看到了,在我的Marvell 9123和ICH10R不管用微软还是官方驱动都没问题。但是这里还是要说一下:

由于9123的停产,之后的主板厂商出品的芯片为9128系列,是硬件支持RAID的。(不管是扩展卡还是主板)

我早先写过信给Marvell的客服,得到的答复是这样的:

问题:目前的Marvell9123和9128控制器支持Win7下Trim指令的传输吗?我听很多人说他们不支持。

回答:首先,从硬件上来说Marvell 912x系列主控对Trim指令的传输都没问题。但是问题出在这里,912x有2种工作模式。第一种:RAID模式,意思是912x内部的处理器运行在RAID固件下,跑的是ROC模式。第二种工作模式叫Bypass模式,意思是912x工作在普通的IO模式。

在Bypass模式下,使用Windows/Linux自带的驱动就支持Trim了。我们之后的官方驱动(开发中)也会支持Trim传输。
(目前看来1045驱动是支持了)在RAID(CPU)模式下,RAID固件目前不支持传输Trim指令到SSD,关于今后是否能支持还在议程中。(我估计最多做到Intel RST那样,RAID模式下不组进RAID阵列的盘支持Trim)

综上所述,目前的MSI出品的扩展卡,主板第三方芯片的,如果BIOS里开启的是RAID模式的话。。大概就要悲剧了。(没Trim)

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

很多朋友想知道SSD的系统如何安装好,这里我就演示下我是如何安装的:


1.正常安装Win7 X64,这个不用截图了吧,安装前我SSD是没分区的,所以系统自动分了100MB的隐藏区和C盘。

2.安装完系统后的图:



3.安装完所有驱动后的图:



4.右键管理员权限执行优化批处理并重启:



5.关闭系统还原和休眠:



6.虚拟内存手动设置到1G并重启(我6G内存,虚拟内存大了浪费空间,但是不能没有。)



7.由于优化批处理执行后会关闭系统的搜索功能,所以安装第三方软件everything来替代系统自带搜索功能,这东西强烈推荐。



8.优化完后的c盘容量。




其实就这么简单,不是吗?不用特意的去优化,把SSD当机械硬盘用就行了。



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

可能会有人觉得这个"测试"有点“不标准”,1.没有参照盘(对比)。2.某些条件下的测试没有做全。3.没有数据列表归纳总结。

对于这些我想说的是,这不是一篇纯意义上的产品评测。每个人对SSD的理解都是不同的,作为一款新事物,大家都是在学习中。我个人是从08年中开始初次使用SSD的(很多朋友应该都知道),和别人不同的是,我喜欢多思考,而不喜欢做机械劳动。虽然在测试之前,我的测试方案里有过制作列表并对比数据等等,但是当我实际“跑分”后,我又“自以为是”了。我认为目前的情况下,没有一款软件能真正分析出一块SSD的优劣和特性,要测试一块SSD,必须用心去学习并了解它的”特点“。SSD市场目前还是战国时期,就像90年代的显卡市场,百家争鸣,每家都有自己的技术,没有统一的标准。列表和对比数据的评测网络上一大堆,C300也已经不算是新品发布了,不同平台成绩的大小误差已经显得没有太大的意义,相反要告诉用户如何使用它和理解SSD才是我真正的目地。所以本文中大篇幅介绍了理论和实践,相反测试部分偏少了。

还有一点要说下,我相信主控厂商在出MP固件前肯定做了非常多的测试来保证性能的前提下的稳定性(测试周期也很长),但是大多数情况应该是跑的脚本和特定的工具。这里有个问题就被暴露了,那就是缺少了最终用户环境测试的案例,比如多平台,不同驱动甚至设置上的问题,所以当产品给了代工厂后量产出货后,到了最终用户手里还是会出很多问题。(当然也有不少是用户不会使用造成的)这点我希望厂商能多聘些有点SSD使用知识的员工做些最终用户平台的测试 - 是真正的用,而不是跑些”稳定性测试“,有规律的“掉电测试”等等机械的脚本,相信这样虽然增加了产品生产成本和生产周期,但是会大大降低产品售后服务成本并大大增加公司的知名度。

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

未来展望:(SSD下一步需要解决的问题)

A. 同步接口开始大量应用:



这张图是SSD内部的基本架构,从图中看到SSD连接到主机的接口(C300 SATA 6Gbp/s,带宽就是600MB/s理论)。那么SSD主控连接到NAND闪存的接口就是图中下方那8条(8通道)。由之前颗粒参数里得知,本次测试的C300颗粒参数如下:34nm封装,符合ONFI2.0标准,4GB的NAND颗粒,2bit MLC, 1个die,1个CE,1个R/B, Vcc: 3.3V (2.7–3.6V), VccQ: 1.8V (1.7–1.95V)。支持同步/异步模式,100-ball VBGA封装。同步模式下支持单通道166MT/s。那么就是说每根通道有166MB/s的带宽了。(接口带宽,不是传输速度)所以这块SSD主控到闪存的带宽大于1GB/s。

Intel/Micron的标准是ONFI 1.x,2.x,三星和东芝的最新DDR标准叫Toggly.






就像内存有SDRAM和DDR SDRAM一样,NAND闪存也有了DDR模式(同步),一个时钟周期可以传输2次,所以理论传输率达到之前的2倍。标准NAND闪存封装为TSOP 48pin,到了DDR颗粒,目前大多用的是BGA之类。DDR的颗粒兼容异步模式,也就是说老的主控只要固件代码支持,是能兼容DDR颗粒的(异步模式),当然带宽就达不到(主控要支持DDR)。

异步的颗粒带宽为40MB/s~50MB/s。为何DDR的颗粒有166MB/s~200MB/s之多?一个是时钟周期2次传输造成翻倍,另一个是时钟周期时间从异步的20~25ns(看颗粒)变成了(12ns~10ns)。同步颗粒对新一代的SSD发展起到决定性作用,可以想象没有使用同步颗粒的话,SATA 6Gbp/s的外部接口带宽是不可能达到的。C300是第一款支持同步颗粒的主控,目前看到SandForce 2xxx也开始支持了,Intel的Gen3还没有看到支持的迹象,所以外部接口还是限制在SATA 3Gbp/s的水平。(DDR并不能让MLC颗粒写入的大幅度提升,因为限制MLC的是编程速度,DDR可以带来SLC颗粒多die封装的写入提升,因为大容量SLC的编程速度一直被总线限制)所以今后DDR颗粒的应用会出现2极分化,一个是采用MLC颗粒的产品出现读取强劲,写入偏弱,采用SLC的产品读写都很猛的情况。

B. 读写平衡的分配:(目前3大主控里SandForce比较强,Intel和C300相对偏弱,对主控性能要求高)

读写平衡,首先主控在这方面要提供多通道分别做不同操作的能力。其次在于读写很可能在同一个die上冲突了,很可能把后面的读命令阻塞住了,比如说刚写一个page,来了一堆读命令,头上那个读假设就需要读正在写的die,主控固件又没能把后面的读调上来提前做,于是悲剧了。主控固件处理NCQ重排的能力在这个时候起到很关键的作用,在此时必须很强悍,要把读写命令重新排列顺序执行,为求达到最大化底层nand带宽的目的。SSD写越多成绩越差是正常的,因为NAND闪存写花的时间多,发生阻塞的几率很大。SandForce还是占了压缩的便宜,写的少了,阻塞就少了。

C. SSD速度的限制:

SSD的速度上面受到颗粒/主控/固件算法的三方面限制,读取上面主要是受到固件地址转换速度,比如做到50000以上的iops,每条命令只有20us 不到的处理时间,应该说是很紧张的,做得差的固件算法或者主控能力烂说不定前端指令还来不及解析;写入主要是看颗粒的编程速度(SLC>MLC),现在来看,C300上就是底层带宽固件算法里没能全部利用起来。其实现在各家的主控对于NAND闪存的带宽利用能力都不错,就看固件算法能不能用足能力(持续读写每个主控性能都不错),而随机IOPS和写入放大才是真正考验固件算法的东西

intel宣传的1.1x写入放大, SandForce宣传的 0.5x写入放大其实都是空盘测试,不考虑垃圾回收的写入放大。(广告水分多)C300比空盘的话写入放大低于Intel的1.1x,但是厂商没这样宣传而已。真正算到寿命的话,看的都是4KB随机全盘填充跑到稳定为止(这个是业界公认的最恶劣情况,企业级市场只看这个数据,在这种环境下,Trim就是摆设。前面测试中我已经测出了C300在这种情况下写入放大=8),这时主要看被动垃圾回收的效率,其次看磨损平衡的效率,被动垃圾回收的效率越高,写入放大越低,性能自然就越高。实际寿命基本上是(空盘写入放大 * 被动垃圾回收写入放大)。所以这样比,SandForce 还是很大优势,除非用户数据都是压缩过的(此时SandForce的写入放大自然也不可能低于1了),这时就要比被动垃圾回收写入放大了。在最恶劣情况下,SSD的99%的时间都是在做垃圾回收, 垃圾回收写的“有效“页越少,体现出的速度就越快,也就意味着写入放大越小,寿命越长。

垃圾回收效率首先由固件算法决定,其次是预留空间的大小。C300的固件是针对随机设计的,这类设计最能接近垃圾回收写入放大理论极限值,特点是持续写入和随机写入速度差不多。(Barefoot主控固件算法针对持续设计,这类设计的写入放大非常高,而且磨损算法是动态,造成随机性能不理想-相比如今的主控)。前段时间看到Intel Gen3 X25-M上也有了相似的特性,看来Intel也开始用相似的算法了。

这里顺便解释下预留空间大小会影响垃圾回收效率的道理:



假设1个块有256个页,左边图中的SSD里每个块平均包含32个“有效”页,右边图中的SSD里每个块平均包含64个“有效”页。这样在做垃圾回收操作的时候,左边图中SSD复制8个块里的“有效”页到一个新块,擦除旧块,结果就是用掉1个空白NAND块,得到 8个空白NAND块。相对的右边图SSD里4个块的“有效页”复制到新块,擦除旧块,我们用掉1个空白NAND块,得到4个空白NAND块。哪个垃圾回收效率高?(同样复制256个页,左边的SSD操作后得到的空白NAND数量多)

垃圾回收效率比完后还要看磨损平衡写入放大,总不能为了性能不要耐久度吧(有些厂家就是这样..),看看:



最小,最大,平均擦写次数(ID 206,ID207,ID208)。。。差距太大了,Barefoot是动态磨损算法,这就是去年主流SSD主控的实力。。。
而且看ID202和ID203的数值,NAND闪存的出错率还是蛮高的,没有强劲的ECC么,嘿嘿。

D.企业级MLC和企业级SLC? (eMLC & eSLC)

目前对于企业级NAND闪存的资料还很少,大致了解了下,是以牺牲数据保存期为代价换取可擦写次数的方法,eMLC性能不如MLC,eSLC性能不如SLC(编程速度),但是差距很小基本可以忽略。这类闪存的特点是断电时间不能太长(3个月以上),不然里面数据可能会出错(也就是读不出来或者读出来是错的,因为漏电后bit变化,主控ECC能力不到家就。。。)




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

我再回答些SSD使用者碰到的常见问题:

Q1:为啥分区不对齐会造成那么大的影响?

A1: Barefoot主控分区对齐和不对齐的性能差距图



SSD采用多通道读写技术以提高SSD的读写速度。以Barefoot主控来说,颗粒4KB的页,主控是4通道的,假设在算法设计上用比较简单的方式,例如一次读写操作单位为16KB(4KB X 4通道),一次读写没有满16KB,那就会出现:读-改-写操作。



如图上所示: 图中SSD出现分区没对齐问题,读写正好在2个16KB边界,所以需要做2次读-改-写操作,那么我们说这时候的操作所需时间就是原来的2倍。如果系统请求写入4KB,那么发生这种情况的概率就是25%(图中第一个4KB在边界,后面3个在16KB内,而第5个又到下个16KB边界了),性能为原本的80%。如果把写入请求提升到32KB的话,发生的概率就是8/9了,随着请求容量的增大,差距就会缩小。所以对持续速度来说,分区不对齐并不会影响很大。

镁光C300分区对齐和不对齐性能差距图:



可以发现C300分区不对齐4KB写入性能下降很厉害,这个和主控算法有关,过度偏向4KB随机的算法,如果因为不对齐造成脱离原本设计的框架,这个算法的所有优化就完全没有了,还带有严重的反作用。之前HDtune测C300的写入时候我已经提到过,C300的算法很明显是以4KB为单位的,因为512B的写入平均访问时间反而是4KB的10倍,而最大访问时间却一样。所以有这个结果早在我预料之中。

所以记住,分区的对齐是为SSD做优化的第一步。

Q2:为啥现阶段RAID阵列不支持Trim,问题出在哪里?

A2.这个要看raid卡的设计,现在raid卡一般都是只关注ata命令解析,不关注传输数据,直接做数据透传的而trim的信息是放在数据段里面的,raid卡必须用内存先把文件系统发的trim数据收集下来,再解析-拆分后做成不同的trim命令发给下面阵列中对应的不同的盘。

这个方法就类似于如今的Sandforce主控SSD配上MSAHCI默认微软Win7驱动的做法,因为SandForce主控是ATA8-ACS2 version 6标准的,这个标准对Trim指令定义做了修改,微软的默认MSAHCI驱动不能完全支持新标准,所以造成Trim发送到主控,主控不接受造成失效。SandForce在1.10固件后临时想了个方法,在Trim发送地址到主控时,截取Trim指令放到cache里,然后用cache里的数据转换成新标准定义后对盘做Trim。由于cache不是无穷大的,所以最大支持一次trim 4G容量,也就是说你删除文件一次删除超过4G,后面的就没效果了。(要根本解决这个问题需要驱动升级,希望Win7 SP1的驱动能解决,Intel RST没问题,完美支持)

Q3.我在安装VISTA/Win7时候用的是IDE模式,现在我想改回AHCI模式,但是进入系统会蓝屏,STOP 0x0000007B INACCESSABLE_BOOT_DEVICE,我该怎么办?


A3.造成这个原因是因为,在安装系统时候,操作系统会判断当前硬盘工作模式,在采用一个驱动后,禁用了不用的驱动来提升系统启动速度,比如用IDE模式安装Win7时,系统会调用PCIIDE.SYS这个驱动文件作为默认磁盘驱动,但是当用户今后需要改为AHCI模式的话,系统就需要MSAHCI.SYS做为默认磁盘驱动,但是由于之前系统在注册表已经禁用了这个驱动,所以造成系统启动时无法调用关键磁盘驱动而出现蓝屏。

微软的HOTFIX可以简单解决这个问题。安装系统后更改启动盘ahci驱动

AHCI主要为SATA设备带来的功能有:热插拔功能,电源管理功能。

Q4.SSD到底支持不支持NCQ?

A4.原生指令排序(Native Command Queuing),简称NCQ。

原理:一般我们的硬盘使用的文件格式为FAT32或者NTFS,这两种文件格式随着使用时间久了之后,会出现不同大小的碎片文件,造成文件的不连贯,这样硬盘的磁头就需要来回寻道来读写所需要的文件,造成一定的性能下降。要改善这类性能下降有几种方法,最简单的就是进行磁盘碎片整理,另一种就是NCQ技术,使用NCQ技术可以对将要读取的文件进行内部排序,然后对文件的排序做最佳化线路读写,达到提升读写效率的目地。NCQ最早是SCSI的标准之一,只是那时候不叫NCQ。然后对这个标准稍作修改后,在SATA的应用上就叫做NCQ了,SAS接口也支持NCQ。开启NCQ除了硬盘本身支持外,还需要操作系统的支持,Winxp需要安装厂商专用的芯片组驱动才能支持,VISTA之后的系统原生支持NCQ。NCQ最大支持到32条指令排序。

对于SSD来说,目前原生支持SATA的SSD都能支持NCQ,SSD虽然没有机械臂,但是SSD有多通道。开启NCQ后,SSD主控制器会根据数据的请求和NAND内部数据的分布,充分利用主控制器通道的带宽达到提升性能的目地。目前的SSD都建议开启NCQ模式。

Q5.SSD用GHOST会影响性能吗?SSD分区会影响性能吗?

A5.很多人说GHOST和SSD分区会影响SSD性能,其实这些操作造成性能下降的主要是因为这2点:

1.分区offset没对齐,造成写入跨扇区。(page)
2.NAND数据并没被清除,而是覆盖或者写入,造成测试成绩低下。

第一点,我们知道,温彻斯特硬盘从很早前,扇区大小就被定义为512B(字节),最新的先进格式机械盘终于把物理扇区提高到4KB(4096字节),而我们现在使用的SSD,page数一般为4KB,(下一代25nm的为8KB),在NTFS6.x以前的规范中,分区offset一直是从63扇区(63X512B=31.5KB)开始,那么就会造成用户的第一个数据的前4KB会存放在系统"逻辑扇区"的31.5KB~35.5KB间,这样持续下去会造成后面所有的数据都会卡在2个物理扇区容量之间,我们知道扇区为磁盘写入的最小单位,如果卡在2个扇区之间,写入的时候就需要进行读-改写操作(对 SSD来说读-擦-写),造成性能的下降。VISTA之后的操作系统,NTFS为6.x,offset就会设置为1024扇区或者2048扇区之类,这样就不会跨2扇区,造成因扇区offset没对齐而出现的性能下降,GHOST之类克隆软件对新的标准支持不佳,克隆回去后的扇区offset为63扇区开始,相当于用XP格式化分区的效果,性能自然会下降。

第二点,SSD的NAND里的数据,在OS下删除的话只是被标记(和机械硬盘一样),并没真正意义上的删除,物理上还是存在的(就算是被Trim了,也只是被标记为无效,区别只是主控制器也知道那些LBA地址下的数据无效而已),问题就出在这里,机械硬盘可以直接覆写,而SSD必须擦除才能改写,这个就造成了完全不同的局面,可以想象一下,机械硬盘GHOST回去的话只要在原来地址上覆盖上去就行,而SSD哪?肯定不会直接覆盖上去,那会违背“磨损平衡法则”,所以他实际会写到后部去(真正物理上的空闲NAND地址),然后重定向下OS逻辑LBA地址和NAND的物理地址(在OS看到的前部的数据定向到 NAND后部地址),这样就会造成啥情况?你等于在这个SSD里做了2次系统,假设一个80G的X25-M,先前的系统为30G,我们做个GHOST,把 SSD格式化,再GHOST回去,再次写入了30G,等于NAND里的数据占了60G。性能自然会下降。如何做才能避免这个情况发生?先做HDD ERASE,清空所有的NAND数据(物理层上),然后再还原回去。这样还原的数据又整齐,性能自然更好。所以我建议希望做备份的朋友,用Win7自带的 backup功能做个镜像(Win7支持增量备份),想还原系统的时候,先HDD ERASE后再用Win7安装盘启动,还原回去,这样性能会好很多。

如果GHOST镜像里的系统是机械盘的,那么恢复到SSD后,默认注册表是没开Trim的。

Q6.SSD用SMART软件查看,老是报错,到底准不准?

A6. 由于SSD目前的SMART定义还没有一个统一的标准,厂牌太多,新品不断,所以用这些查看普通机械硬盘的SMART软件查看SSD信息有失偏颇,目前看下来兼容性比较好的就属CrystalDiskInfo这款软件了。



C300的AD这个值定义:平均磨损次数,可以算是物理上每写入全盘容量一次加1。


各厂牌有自己的SMART定义,所以最好用自家软件查看为准:

1. Intel的自然用Intel Toolbox查看,请自行去Intel官网下载。

2. SandForce的目前可以用OCZ TOOLBOX查看(兼容所有SandForce),可在附件下载。

3. INDILINX的主控请用附件里的SMARTVIEW查看。(我从某个地方得到的内部SMART查看程序,别问我出处)


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

SSD没有魔法,NAND闪存的读写/擦单位不同,造成了物理上的最大缺陷。一切的算法,技术都是为了来规避碰到最恶劣情况的次数(不是说不会发生),好的算法和差的算法最主要的区别是,你平均100次0.1ms的延迟之后会碰到1次100ms的延迟,而我平均10000次0.1ms的延迟后碰到1次10ms的延迟而已。记住一点,空闲容量和性能,恢复速度,寿命息息相关,一味的索取(写入),不让主控休息(垃圾回收),再强的算法也会碰到最恶劣的状况。

当前3皇选谁?:

SandForce  60G(实际64G)   8xx
C300        64G    11xx
X25-M      80G    11xx

3个SSD中,颗粒上C300最好(同步颗粒,BGA),成本最高,另外2家都是34nm TSOP封装的Intel,主控上是SandForce成本最高,镁光次之,Intel最廉价。基于以上这点,在价格上很难综合比较出哪家“实惠”。

耐久度上,SandForce主控占优(压缩算法),Intel和镁光的颗粒占优(自己生产的,好东西都在自己产品上)。见过X25-V 颗粒磨损超过15000 P/E还没挂的(当然坏块不少),也见过OCZ官方人员说自己的SSD平均P/E在1000~3000的。算法耐久度损耗X颗粒P/E后,耐久度就差不多了。

性能上,也很有趣,持续速度上,3款主控最低容量的型号(X25-V不算),写入极限实际都在70~80MB附近(SandForce官标275MB/s水分大过头,实际60~85MB/s跑压缩包的话),读取上镁光靠着同步颗粒和SATA 6Gbp/s接口称王。在随机性能上,虽然3家都非常不错,但是不得不承认,随机写入上是Intel最弱但是哪里都适用,镁光次之但要看设置,SandForce最强但不见得跑最顺。(差距真的很小,随着平台不同变化蛮大的)

所以答案是:SandForce适合高负载服务器/工作站,Intel适合笔记本,C300适合台式机。SandForce着重看颗粒质量(搭配上SLC就是王),Intel看中兼容性(哪里都能玩,不用瞎折腾),C300看中极限传输率。(折腾完后,前面2个都闪一边去)


------------------------------------------------
11月13日补充:自用OCZ VERTEX LE SandForce 100G

HDD Erase后格式化空盘测试:





满盘4KB QD32写入后(测试数据模型为数据库文件)
看起来影响不大。

这次换个方式:测试数据模型改成MOV文件(我500D拍的视频)



满盘4KB QD32写入后(视频数据难压缩),初始速度就不如上面的图了。



继续跑25分钟,速度跌了1倍。



1小时候的速度,明显开始不济了。





全盘格式化后,读取恢复(主控让写入跑在限速模式,以保证在保修期内磨损度足够。)(SandForce技术)


100G的盘格式化后93G,实际颗粒128G,OP 28G +7G,所以这个速度看上去还行。
如果是64G颗粒盘容量60G或者128G盘容量120G的SandForce盘,速度就会悲剧了。(OP容量影响GC效率)

所以用户的使用方法很重要,如果使用的模式违背了算法的初衷,那么就会有反效果。(比如在sandforce上跑大量压缩数据)

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


本文最后,感谢这次提供测试品的大陆镁光总代,PCEVA管理员石头,另外还有在学习SSD知识中帮助过我的朋友。{:4_117:}

本帖子中包含更多资源

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

x

评分

参与人数 10活跃度 +395 收起 理由
flight8848 + 20 学习
jasu30 + 5 我见过的最长的一片测试。。
hclo + 50 精品文章
PC_Max + 10 喵!~
royalk + 100 得劲~
xiahait + 20 精品文章
bill5267 + 20 原创内容
DR.tang + 50 精品文章
无心飘落 + 100 感谢分享~
James007ss + 20 原创内容

查看全部评分

而立之男 发表于 2010-11-6 18:23 | 显示全部楼层
2L
thexzero 发表于 2010-11-8 09:50 | 显示全部楼层
读取真快。
dn97305 发表于 2010-11-10 23:09 | 显示全部楼层
路过帮顶。。。
James007ss 发表于 2010-11-10 23:31 | 显示全部楼层
出来了,必须顶的说。;P
acepro 发表于 2010-11-11 00:00 | 显示全部楼层
走过路过,当然要顶顶!!
无心飘落 发表于 2010-11-11 00:10 | 显示全部楼层
:P感谢分享~~又学习到了不少,谢谢!
ppkg 发表于 2010-11-11 00:20 | 显示全部楼层
写入杯具,是SATA控制器问题么?
icz88 发表于 2010-11-11 00:27 | 显示全部楼层
Marvell 的控制器读取性能不错,写入弱了一点。
还是SandForce的控制器强大阿....看来下一代还得买它。
nanbangg 发表于 2010-11-11 00:35 | 显示全部楼层
强势围观!C300性能确实没得说··一早纠结过写入低的问题··后来想想反正做系统,又不是天天拷东西进去,果然还是读取王道
ffq444 发表于 2010-11-11 01:35 | 显示全部楼层
SF12XX的主控能用浴室发的那个SF工具箱吗?
用处大不?
bill5267 发表于 2010-11-11 16:15 | 显示全部楼层
拜读浴室大作~~
flash008 发表于 2010-11-11 16:27 | 显示全部楼层
赶紧搬个板凳学习一下
leavesy 发表于 2010-11-11 16:36 | 显示全部楼层
必须先顶再看.
无心飘落 发表于 2010-11-11 16:47 | 显示全部楼层
看的泪流满面啊。。。
zzzasd1 发表于 2010-11-11 17:27 | 显示全部楼层
{:3_41:}{:3_41:}{:3_41:}
a.sir 发表于 2010-11-11 18:01 | 显示全部楼层
精:L太厉害了
mikeee146 发表于 2010-11-11 19:41 | 显示全部楼层
这个绝对要顶,深入浅出
gza633 发表于 2010-11-11 22:06 | 显示全部楼层
数据还不错

拿来做系统盘 然后放一些常用的软件进去
didibaobei 发表于 2010-11-11 22:07 | 显示全部楼层
问下版主  SF主控的那个软件  为什么打开提示找不到OCZ drive
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部