打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【横评】你所不知的物语 从初生到旗舰7款PCI
 本帖最后由 镜音リン 于 2016-9-20 17:51 编辑

*此为SSD知识入门向文章,并不涉及太深的专业知识如实际固件算法等。如果你认为对某些产品、厂商进行测试、评价就是水军、职业枪手,请不要开始阅读。

PCI-e SSD,你肯定听过,憧憬过他们的性能。但是你可知道,它们如今的美丽的背后,都藏着怎样的史诗,和怎样的真实面目?

--题记

目录:



-1.题记

0.目录
1.前言
2.详解
3.测试
4.分析
5.结论
6.附录



前言:


如果你前几年一直在关注sata SSD,你会发现一个问题:市场上的sata SSD产品虽然品种繁多,但是规格确非常统一:大部分主控是8通道(性能取向)或4通道(价值取向),sata3总线,AHCI协议,BCH纠错码,等等。要说有特色或者进步,也就是采用更越来越省钱的颗粒(更新的制程、TLC或3D-NAND等)、更好的QoS(服务质量)、更好的数据保护功能(如掉电保护、XOR冗余、QSBC纠错之流)这些“优化改良”性的提升上。

其实原因很简单:SSD发挥性能靠的是众多闪存通道、闪存颗粒的共同协作。只要闪存够多、够快,主控够强、通道够多,性能可以不断做强。sata-AHCI这套从机械硬盘时代开始已经沿用了很多年的方案由于其高延迟与最多只有6Gbps的带宽,只有一个命令队列32队列深度,显然早已遇到了瓶颈。由此,厂商自然会想到使用PCI-e这种延迟更低、带宽更大的总线与新的通讯协议。于是,SSD终于从禁锢多年的牢笼中解放了出来。



话说天下大势,分久必合,合久必分。其实在企业级市场方面,厂商早就看到了PCI-e通道的潜力。“合久必分”,在2012年附近,各路厂商终于不能忍受sata/SAS的限制,纷纷推出了各种架构的PCI-e SSD,每一家都有着自己的特点:
第一种,比较普遍的SAS+HBA母卡的架构,单个或多个SSD组成,通过HBA以连接在PCI-e总线上。典型的有Nytro Warpdrive、intel 910、sandisk lightning、OCZ Revodrive等;
第二种,原生PCI-eASIC/FPGA主控。如美光P320h等,使用一个整合的原生的控制器,作为一个独立的PCI-e设备与PCI-e总线连接;
第三种,特立独行的分离式host-based方案,主要是fusion IO在做。SSD板载闪存控制器,元数据处理器则由系统的CPU担当 。这种分离架构使得数据处理能力大大提升,性能潜力相当高,而也正是fusionIO与各路厂商的合作,加快了今天PCI-e SSD在专业领域的普及。



不难看出,第二种方案是目前大部分厂商的发展方向。这是因为第一种方案虽然利用了现成方案,但是结构复杂、效率受到桥接结构的影响;第三种方案由于元数据处理器为CPU,其可靠性和性能稳定性自然会受到系统CPU与内存甚至软件环境的影响。“分久必合”,SSD市场正在走向另一个统一的时代。

然而,采用了更先进的架构真的就意味着性能更强么?按我的经验,很多时候看起来很厉害的新技术,只是溢价的工具而已。很多老将多年后仍然老当益壮,很多花瓶在被营销与市场抛弃、华丽的外表被揭开后价值也一落千丈。本次测试将涉及7块不同架构的PCI-e SSD,并加入SATASSD的测试数据,重温一下PCI-e SSD性能的发展历程,并在桌面与工作站应用的角度,看看采用PCI-e通道
究竟会造成什么样的变化,新的技术是可一招制敌还是可有可无,各家硬盘的素质又怎么样。





详解:


(详解按照大体发展顺序进行)
话说对于大部分玩家来说,PCI-eSSD第一次进入我们视线,应该是OCZ Revodrive这个双SF方案的桌面级产品。但是在2011-2012这个PCI-e SSD产品井喷的年代,同样的桥接方案远不止一两家在做。比如下面的这块闪迪Lightning系列SSD就是其中之一。这是比较早的方案,现在的lightning系列已经变成全线原生sas硬盘了。


这块硬盘型号为LP406M,使用共512GB 闪迪自产34nm SLC闪存制作,放了约25% OP容量到400GB。当时由于闪存比较昂贵,有些厂商就给出了“固态加速卡(SSA)”这个概念,把SAS SSD桥接到PCI-e上做加速卡使用。下图中的散热片下面就覆盖着一块LSI SAS2008 HBA桥接片。旁边比较大的FPGA芯片为SSD部分的主控,由于发热量不大,并没有特地加散热片。


在那个时候,各路厂商已经认识到了“掉电保护”的重要性。当SSD意外断电时,缓存中的数据与映射表需要被保存回闪存上。闪迪Lightning系列采用的就是一种比较原始的分离式掉电保护。由于固件并没有设计掉电时切换到最小电源模式,除了2颗大型固态聚合物电容给主控与缓存供电外,每2个闪存颗粒由一颗钽电容供电。这样可以使得全卡不断电,数据会以最快速度回写到闪存上。


当然,背板散热孔指示灯也是必不可少的。在正常工作时SSD挡板后的LED会发出宁静而文艺的橙色与绿色灯光,彰显其和浮躁的家用级产品的区别。什么时候家用级产品也能从现在的杀马特回归本真。。。


作为企业级SSA,管理软件是必不可少的。Lightning的控制软件为命令行形式,包含更新固件、查看smart信息、安全擦除等基础功能。其HBA部分也有自己的BIOS,虽然里面也没多少可设置的选项。另外,这张卡的固件是没有校验的,可以随意选择刷新OEM或公版固件。


当然,闪迪Lightning是一个很简单的方案,仅具有一颗SASSSD主控。下面的LSI Warpdrive则由4颗具有SF2582主控的子卡组成。这就不是简单做适用性上的修改,也真正地增加了连续和高QD随机性能,以发挥PCI-e总线的优势。


此卡为HHHL(半长半高)设计,PCI-e 2.0 8x接口。在intel Sandy Bridge架构CPU(二代Core与一代E3/E5等)发布前后并没有支持PCI-e 3.0的平台,所以只能采用更高的通道数来增加最大带宽。


其掉电保护仍然是分离设计。不过没有之前闪迪Lightning那么分散。HBA桥接部分使用4颗三洋固态聚合物电容供电,而4张子卡则由一排钽电容负责。使用的三洋SVPF 16v 1000uF固态聚合物电容和Kemet T520 16v 68uF钽聚合物电容均是所用尺寸的旗舰级产品。这些电容具有极低的ESL与ESR,经常被用在高频滤波电路中,而用在这只是为了节省HHHL尺寸母卡上宝贵的空间。现在已经很少有厂商舍得放那么多高端器件了。。。


4片子卡用特殊的接口连接到母卡上。子卡可以看成4个独立的SSD,每一片具有一颗Sandforce SF-2582主控和8颗东芝25nm eMLC颗粒,通过硅胶片连接到金属外壳上进行散热。所以这片SSD在子系统层面就具有Raise冗余恢复功能,减少写入和读取中出错的可能。在上篇测试中,SandforceSF-2281主控具有相当突出的表现,轻松地击败了所谓“家用级旗舰”产品。毕竟企业级产品要的是真正的性能,而不是爆发跑分有多么突出、多适合做广告。

当然,很多人因为SF的压缩特性在某些跑分中的优势以及某些厂商利用其完善的固件制造的劣质SSD而排斥SF主控,同时也看不到SF在一致性、响应速度等其他方面相当强大的功底。没办法,在一个各厂商利用各种噱头各种营销伎俩“宫斗”的时代,看清事实不是件容易事。。。


这也许是最贴心的挡板设计。。。3个道光条依此连接寿命、状态与活动指示灯,并且贴心地在下面标出了指示灯的定义。蜂窝形的散热孔也相当美观。我们永远走的是文艺路线。


LSI Warpdrive当然也有自己的管理程序,当然也是同样的命令行形式。除了一般的安全擦除、每一个子卡的Smart信息、刷新固件等功能外,比较有趣的是,这个工具能手动设置OP冗余容量,并且有最大性能(1.4TB)、平衡(1.6TB)和最大容量(1.86TB)三个预设。那OP容量对SSD有哪些作用呢?我将在后文中进行说明。

比较遗憾的是,此卡并没有提供调节子卡组成的阵列模式的功能,也就是说,4块子卡一直运行在Raid0模式。不过4片子卡相当一致,并且和HBA一起做过tweak,子卡的方案也相当可靠。所以这种预制作的阵列系统还是相当可靠的,不会出现diy阵列中各种蛋疼的问题。



以上两片固态硬盘是比较早期的PCI-e方案。它们使用的完全是现成的方案,将一片或多片SATA/SAS SSD通过HBA桥接芯片连接到PCI-e上。虽然实现起来相当容易,但是它有个明显的缺点:仍然经过了一层HBA,并没有直接利用PCI-e的低延迟优势。反而由于数据需要多通过一级桥接芯片,所以如果PCI-e接口来源于南桥,延迟反而比同方案的SATA/SAS SSD更高。

于是,原生的PCI-e SSD主控应运而生。由此,“真正的”PCI-eSSD终于出现在我们面前。

早在2012年,美光就已经发布了一款叫做P320h的原生PCI-e SSD。由于其使用了SLC颗粒,其价格到现在仍然非常高昂。然而不是每一个应用环境都需要那么高的耐久度。为了照顾写入密集以外的应用,提供更容易接受的价格,美光在次年发布了相同主控的采用eMLC颗粒的P420m PCI-e SSD。


P420m仍然采用了PCI-e 2.0 x8接口。比较值得注意的细节就是,所有BGA封装的NAND Flash闪存与DRAM缓存颗粒均使用树脂固定以降低虚焊的可能。上一次看到这么用心的设计已经是X25-E上了。。。


将正面负责颜值的铝散热板去除,结果相当可怕。。。整版的kemet钽聚合物电容。


每一颗钽电容都是令人咋舌的1500uF 6.3V规格,两两串联使用,以满足大型原生PCI-e主控的巨大的供电需求。算下来光是这片掉电保护子板就值几百元人民币。。。


当然,由于电容是两两串联的6.3V耐压型号,理论耐压不超过12.6V,所以这块SSD对系统电源的输出质量有一定要求。

这种比较擦边的设计在板卡上经常见到,所以个人一直建议,买电源千万不要光看它拿了什么牌,一定要看其输出纹波与动态响应速度。毕竟,硬件的死活比能省10块还是20块电费重要得多。。。


这里就不得不说一下企业级和家用级在掉电保护方面的区别。

从选材上看,家用级往往是MLCC(多层陶瓷电容)或者薄膜电容等储能较少的电容,而企业级则配备了大容量钽电容、甚至搭载了DC-DC调压系统或超级电容来增加能量储备。这种差别会造成多大的区别呢?

我们复习一下MLC的工作原理。

闪存是靠储存在一系列特殊的晶体管中的电荷来存储数据的,其储存的电荷量多少就决定了其电位高低。在SLC中,如果一个晶体管内部的电位较低,那它就代表1,反之则为0.在MLC中,这样的电位有4个,所以可以可以存储2组0或者1的数值,也就是2bit。TLC中则有8个电位。在典型的情况下,每一个晶体管在写入时会先写“Lower Page”,也就是电位变成第一张图中L0或者L1的位置。而第二次写入则会进一步细分,将电位变化到图2中4个位置中的一个,也就是编写“UpperPage”。这样就实现了每个单元存储4种状态,也就是2bit数据。当然也有少数方案中MLC是一次性写入一个确定的电位的。电位数越多,发生漏电时也就越难判断属于哪一个区域从而出现错误,所以同样环境中TLC的可靠性低于MLC。这是后话了。


当意外断电发生时,家用级掉电保护系统可以提供大约1ms的时间。如果这时SSD正在编写Upper Page,这个时间足以使SSD将这个晶体管恢复到编程以前的电位,以防止之前存在的数据出错。另外,映射表是SSD的生命,它记录着文件系统识别的扇区与SSD闪存区块之间的关系。SSD的映射表会间歇性记录一些信息,如果异常掉电发生,SSD可以从这些信息中恢复出映射表,防止SSD内部数据变成一片混沌。

然而企业级的要求远高得多。家用级掉电保护说白了就是让SSD在掉电以后很可能还能正常使用,而企业级则要保证所有数据均毫发无损。所以企业级搭载了大量电容以储存足够大的能量,使得在意外掉电时,缓存中的数据和映射表均可以转移到闪存上,并且完成一切正在进行中的写入操作。这样,掉电造成的损失就与SSD无关了。

显然,企业级产品的掉电保护要靠谱得多。然而家用无人权,对安全性要求不高的话,我们就用便宜的方案吧,毕竟几片mlcc电容也就几毛钱的问题。。。另外如果采用占地面积更大的企业级掉电保护方案,成本上升几倍不说,这些组件又会占掉走线和闪存的位置,使得PCB成本又要上升。。。还是算了吧。。。


掉电保护部分看过了,更为惊悚的是,这块SSD采用了3张PCB,通过插针和连接器互相连接。其中第一片较薄的为掉电保护用的电容板,第二片搭载了大部分的闪存,第三片则负责主控、缓存、各种ROM等部件。


挡板处有密集的散热孔进行排风。同时留有3个指示灯的位置。


缓存方面,一共有9颗256MB Dram颗粒组成2GB带有ECC的缓存系统。单主控SSD中目前最大之一。


而其最引人瞩目的是主控。主控的散热由贯穿2片PCB的一片看起来很舒服的散热片负责,散热片底部有一片特殊的网状金属层连接到主控上,使之几乎不能被拆除。


主控本身为IDT代工的ASIC。这颗主控虽然架构很普通,但是它是一颗32通道主控。没错,32通道。。。之前SATA通道的王者DC S3700也就是个8通道主控而已。。。对于AHCI协议的单一命令队列、32队列深度而言,可以说指令根本没有必要去排队,每个人都有自己的窗口。。。所以美光敢去说,这块SSD在系统的提交队列深度达到256时此SSD仍然有性能提升。

遗憾的是,虽然这颗IDT主控支持NVMe,但是美光提供的固件并没有做出相应的支持,所以这个怪兽只能委屈一下用AHCI了。。。


在这我们简单介绍一下美光P420m上的数据保护系统。

美光将SSD上的闪存进行了划分。闪存最小的写入单位是Page,最小的擦除单位是Block。每8个page组成一个super Page,每8个block组成一个super Block。这些是所有闪存的标准。

然而美光又引入了“LUN”的概念。这个概念可以理解为“一大块闪存”,可以大到一个die(硅晶片),由很多个block组成。一个LUN包含每一个superblock中的一个block,也就是由所有superblock中的一个block拼凑而成。

这样,SSD在进行读写时数据就会更分散到每个闪存上,利用到尽可能多的闪存的带宽。


而美光的RAIN数据保护/校验技术,就是在super block上发生的。每一个super block中,有一个是用于校验的。这样,当这一组block中有一个出现错误时,根据校验信息SSD会立即发现这个错误。7:1的比例也可以保证,当SSD上有相当多的闪存损坏时,数据仍然可以正常的读出来。


RAIN这个数据保护技术和intel的XOR并不一样。RAIN更接近Raid5,而intel XOR更接近Raid4.由于每次读写操作都需要同时读取或写入校验信息,RAIN的优点就是,校验信息是分散存储的,在读写少量信息(如4KB随机读写)时不会像XOR或者RAISE那样频繁读写储存校验信息的那个闪存。

但是无论如何,带有这类冗余技术的SSD不仅每次读写操作都需要读写更多的数据,而且每次操作至少要附带进行一次校验信息的操作。这就是企业级爆发跑分,特别是随机读写,比类似的家用级低的原因之一


另外值得一提的就是美光的Data Path Protection。对于企业级产品,每一笔数据在进入SSD后会附加一个12B大小的校验信息(MPECC编码),这个信息会在处理和传输过程中多次被校验,直到进入NAND闪存控制器。这和End-to-end Data Protection差不多。


由此可见,企业级SSD为了数据安全性花了多大的功夫。。。毕竟MLC闪存本身就不是一个多么可靠的存储介质,再加上为了增加性能与耐久做的动态映射表设计,与数据流经的层层结构,在当年很难想到SSD会做到如今的规模和复杂度,而且到现在也有个别专业人士“不敢”用SSD。。。类似的问题有空气动力学中经常是微分方程解是否存在都不知道就拿出来用,少见去研究特解的。一个学空气动力学的朋友不敢坐飞机,也就是这个心情吧。

不过如今的技术已经相当成熟,只要好好去做,SSD的数据安全性并不是一个问题。当然,前提是“好好去做”,不是拿某辣鸡方案搭着某多达8个电位的颗粒挂着一堆bug就拿来卖。。。

软件方面,终于有图形界面了。同时也提供了命令行界面可以选用。毕竟有些码农还是更习惯命令行。工具的功能也非常丰富,甚至可以调节SSD是工作在延迟优先还是吞吐量优先的状态下。


特别的是,工具提供了两种擦除方式:Secure Erase和Sanitize。

Secure Erase大家很熟悉。哦,大家真的熟悉么?那你知道SSD在执行SE时只是保证重置映射表并标记无效数据,并不一定会立即完全擦除闪存上的数据么?原本作为ATA指令的Sanitize则会使包括op容量中的所有数据无法取出(包括采用覆盖写入等手段防止数据再被读出),Secure Erase则是一个子类别,使得磁盘被擦除。在这个情景中Sanitize也就是从block级别完全擦除SSD闪存上的所有数据。所以做性能测试之前还是先Sanitize一下更好一些。硬盘只是接收并以自己的方式执行指令,就像之前JMF主控那样,如果硬盘在接收SE指令后并不立即擦除闪存数据,那么之后的测试成绩则会偏低。


那Secure Erase为什么Secure呢?如果我告诉你,1对应Z,2对应X,3对应C,等等一个对应表,那给你一串数字你就知道我给你的是什么单词。但是如果你不知道这个对应表,那我给你一串数字估计你就完全不知道是什么意思了。“映射表”大概就是这种作用。没有映射表,NAND闪存上的数据也就是一些无意义的电位而已。

顺带一提,美光工具SE需要输入密码“ffff”。


工具也会提示SSD出现了什么异常状态,该锁盘的时候也会锁住变成只读。比如移除掉电保护板的时候。。。


SSD终于进入真正的原生PCI-e时代了。然而,AHCI协议却拖了后退。AHCI只有一个命令队列,深度是固定的32,这对于PCI-e提供的大带宽与高速的响应时间,与大舰巨炮式的SSD主控,显然已经成为需要改进的瓶颈之一。如蛋x所说,五虎上将具备,由刘备指挥,显然有些暴殄天物。于是13个厂商联合请出了“诸葛亮”:NVMe协议。而在美光P420m发布的一年之后,也就是2014年,Intel这个一直的性能王者再度以极高的姿态登场。

之前,在2012年,Intel拿出了到现在来说都算是经典的一款产品:DC S3700。与此同时,intel又对SSD的速度做出了全新的诠释:我们不仅需要冲刺的时候快,也要能跑得起马拉松;不管多大的压力多么复杂的情况,不管使用时间多长,我们都要持续地以最少的延迟完成最多的任务。这也就是“性能一致性”。这个概念终于让人们认识到,为什么有时自己的SSD跑分如此高超,实际使用起来却比不上那些跑分毫不起眼的产品,甚至出现宕机等重大问题。而DC S3700即使在今天也很难遇到敌手,甚至不惧一些企业级PCI-e SSD。

和S3700同年发布的intel 910系列pci-e ssd只是个过场。其实在SSD领域intel基本也会遵循一个tick-tock的战略:DC S3700在2012年发布,13年则是工艺更新的面向读取密集型应用的DC S3500。而2014年第二季度,20nm工艺成熟之后,则是至今仍然闪耀的明星产品:DC P系列配合着新的“军师”NVMe协议正式登场之时。

公版DC P系列分为3个定位3个产品:写入密集型的P3700、混合型的P3600与读取密集型的P3500。规格则有HHHL(半高半长) PCI-e 3.0x4与2.5寸 SFF-8639(U.2)两种。2015年又发布了家用级“阉割版”750系列,通过闪存降级和削减OP容量降低成本。


下图就是HHHL规格的P3605,P3600的Oracle高耐久定制版。
耐久提升近一倍到14PBW。


背面。Intel 750系列是有背板的,然而DC P系列却没有。毕竟因为重复安装引发物理损伤的可能性小很多。第一级缓存是主控中的SRAM,第二级缓存由5颗美光D9PQL组成。PCB表面被36颗闪存颗粒堆得满满的,走线也相当紧密但非常整齐,所包括各种弧形的走线与45度转向以保证电气性能。如此将空间榨干的设计必然需要多层PCB来实现。按第二层铜箔的深度看,这片PCB应该有12-16层。


然而我们更关心的是它的颗粒。这是一颗IM 20nm eMLC颗粒。Intel将这种MFP后缀的闪存颗粒用在全系列DC P系列中(包括P3500 P3600与P3700),而在家用级750中intel使用了MFS后缀的等级稍低的颗粒。桌面级再次丧失人权。。。

然而intel在P3600与P3700上将其称之为“HET MLC”。那么HET究竟是什么?为什么同样的颗粒用在P3500上intel就闭口不谈HETMLC?


“HET(High Endurance Technology)”高耐久技术,并不是单一的一种技术,而是intel一整套提高闪存耐久度、降低不可纠正错误率的方案。它是怎么实现的?首先,当然是闪存筛选、品控。Intel的标准比JEDEC规范更加严格,不仅在会高温下进行,而且测试中数据的校验也会更加频繁。当SSD成品做好以后,intel还会进行ShortStroke测试,也就是每个闪存上选一小块做压力测试,以保证精确性。


当然,“特挑”造成的成效是有限的。而且DC P系列使用的颗粒编号一样,也应当是类似水平的。那么除了特挑以外,有什么别的办法能拉开几倍甚至几十倍的寿命差距呢?这个问题,你可以想想,如果是你,你会怎么做?

首先,最笨的方法,增加闪存的容量呗(也就是增加OP容量),这也是之前提到的OP冗余的作用之一。如果给512GB的硬盘配备1TB闪存,那么用户用着512,但是实际从写入量来看自然就是1TB的总写入量,那么,寿命不就翻倍了么?

实际上,寿命不仅是翻倍,而且会翻几倍,因为“写入放大”减小了。因为磁盘有更大空间去整理那些数据。所以说为什么P3600 1.6TB会配备2304GB闪存,P3700则更加可观,而750 1.2TB仅配备1376GB闪存。寿命是可以用成本去换的。


其次,时序调节。玩过内存的都知道,时序放松一点内存可能可以更容易过测试。闪存也是一个道理。好的晶圆被挑出来做eMLC之后,时序也会被调节以增加其耐久度。普通的cMLC则会追求稍高的性能。

最后,ECC(错误检查与纠正)算法的改良。还是MLC的电位图,我们希望闪存“规矩”地将电荷理想规整地分布在四个范围其中之一,但是实际上,闪存中的单元会漏电。就像图中红线一样,电位可能稍微偏了一点,这就导致读取的时候可能产生错误。所以我们需要ECC算法去纠正这些错误,保证从盘子里读出来的东西是对的。


其实,闪存寿命被消耗的本质就是闪存漏电率在写入-擦除循环中增加,从而导致的错误率增加。既然闪存本身不容易改变,那么用更可靠的纠错方法,不就可以在闪存变得“比较坏”的时候硬盘仍然不罢工、继续正常工作,从而延长寿命么?

所谓纠错方法,也就是用一组原来的数据生成一组新的数据,如果出现错误可以使用这组新的数据来发现何处出错并且加以纠正。比如源数据是12 16 7 9 2 1,我们用一个0或者1来记录它们加起来是奇数还是偶数。如果传来的数据加起来是偶数但是校验码是1,那么我们就可以察觉有地方出错了。以往在SSD上,我们会采用BCH码进行ECC查错/纠错。简单地说就是,我们构造一个多项式,根据一组原数据和这个多项式,进行一系列运算找出一组数作为纠错码。 而由于当今主控能力的提升,一种尘封50年的编码方法:LDPC编码(低密度奇偶校验码,Low Density Parity Check code),由于其纠错能力非常接近理论极限,而开始作为新一代SSD产品的“标配”。

简单地说,我们根据每一组源数据的大小,和这一组源数据和需要搭配的校验数据的位数,构建一个奇偶检验矩阵:


然后把源数据和校验数据根据矩阵连接起来,比如第二行第五列矩阵的值为1,于是把源数据里第五个和校验数据第二个连接起来。所有连接完毕后,每一个校验数据会根据所连接的源数据做出更新。之后会检查终止条件以决定是否继续进行重复的运算。


以上只是简介,没有涉及深入具体算法,但是应该看到,无论采用哪一种纠错方式,具体算法都是有文章可做的。这就需要厂商对颗粒可能出错的“方式”有深入了解。所以很久以前就有人说,以后非原厂的SSD不能买了。。。

类似防止错误发生的方法还有XOR。之前说的美光的RAIN类似于Raid5,Intel的XOR则是类似于Raid4.其大概思想就是按照几组源数据,使用XOR运算算出来一组XOR奇偶校验码,和数据一起发送和校验,存在专门的“XOR die”闪存晶片上,从而保证数据准确性。其较为简单,对写入性能的损耗更小,而且同样能在一定程度上防止闪存芯片损坏造成的数据损坏。当异常掉电发生时,SSD也可以仅给部分闪存供电即可保存校验信息,而不需要全盘通电。

具体数值,750 1.2TB具有2颗XOR die,S3700 800GB具有3颗,而P3700 2TB达到了8颗(不可靠数据)。


其实提升耐久的方法还有不少,软件上如更好的写入均衡、编程状态干扰管理,硬件如三星在3D-NAND上用的的“Charged Trap”结构,等等。如何用不可靠的组件组成一个可靠的系统,既是一门技术,又是一门艺术。


我们回到正面。正面的主散热片是一块型材切、铣而成。与背面没有背板的做法如出一辙,正面装饰的铝片也没有750厚。


从一端往里看,会注意到,主控部分的散热片是分离的,而且有更多的鳍片。


然而粘的太牢仍然拆不开。。。


散热片下面的主控:CH29AE41AB0更值得注意。这是一颗全新的18通道的原生PCI-e 400MHz NVMe FPGA主控,仍然是定制品,而且仍然是DC P和750系列全家通用的。虽然没有P420m的32通道主控那么暴力,但是仍然是大部分SATA/SAS性能级产品的2倍多了。强大的多通道主控更能发挥NVMe所带来的并行性能优势。


在SSD领域,特别是主控方面,虽然Intel并不是每年都有集中的大型更新,但是每次重大更新都有相当大的提升。而最近一次更新就是围绕NVMe协议进行的。

其实NVMe也是一个很早以前就被创立的协议了。其可以追溯到2011年3月,也就是1.0版本的NVMe协议发布。


NVMe的主要目的是解决一个问题:延迟。以往的AHCI协议被设计为起到一个“翻译”的作用,也就是将sata总线通过一个使用AHCI协议的HBA“翻译”到PCI/PCI-e总线(或者DMI总线)上,并提供一个命令队列,从而提升性能、并更容易管理。这种做法对于传统机械硬盘来说并没有什么问题,因为设备本身的延迟非常大,“淹没”了协议和HBA造成的延迟。

然而SSD来了。延迟缩小了几个数量级、成百上千倍以后,AHCI/SATA也就成为了瓶颈。于是,NVMe/PCI-e标准也就应运而生。它采用了一个更直接的连接方式,使得硬盘可以直接通过PCI-e总线与系统的CPU与内存连接,不需要通过中间结构。这样可以大幅减少总线方面带来的延迟。


解决了连接延迟问题以后,问题并不算完。既然SSD的速度增加了那么多,那么自然我们会安排一堆任务给他,SSD主控也会安排更多的“打饭大妈”来处理问题。那么,将这些任务比作食堂的食客,那么怎样才能让他们尽快吃上饭?这就是一个协议本身的延迟的问题。

AHCI的做法是,建立一个深度为32的“命令队列”(也就是能容纳32个命令),如果有需求的话进去排队,硬盘里的几个工作人员会。


显然,如果客人和服务人员继续增加,那么他们肯定越来越不想挤在一个队里。

所以,NVMe协议这个“室内设计”安排了最多65536组队列,其中一组用于管理,其他的65535组用于I/O指令,如读取写入这些。每一组队列又有一组或者多组环形的SQ(提交队列)和一组环形的CQ(完成队列)。也就是说,食堂里有众多窗口,指令可以去一个窗口(SQ)点菜,点完之后可以等着去另一个窗口(CQ)拿,甚至着急的人可以走特殊窗口(高优先级的SQ)点菜并且可以很快拿到。这样效率不就提升了么?对于一颗核心较多、通道较多的主控,这样显然这样比大家都挤在一个队里强。


软硬兼施,提升的数值也很明显。DC S3700的平均读写延迟为45/65us,而P3700下降到了20/20us。当然这并不是NVMe的全力,NVMe更适合比闪存更快的存储介质。


当然,如果窗口只有一两个翘着二郎腿的工作人员的话,用AHCI还是NVMe协议,也就都差不多了。性能还是得看SSD本身的素质,NVMe只是让SSD的性能发挥不再那么束手束脚

说完主控,我们看看掉电保护方面。DC P系列AIC直插式的SSD的掉电保护电容是2颗NichiconUD系列高压低阻抗贴片电解电容,规格为330uF 35v。

我曾经考虑过为什么intel不采用固态电容或者钽电容,结论是PCB放不下。日系固态电容耐压达到35v的容量最大只有120-150uF,而如此紧凑的PCB无论如何也是堆不下5颗这样的电容的。钽电容则更加糟糕,不仅越到高耐压容量越小,而且为了保证可靠性电压还需要留有大量冗余。

而对于质量可靠的日系电解电容,在控制好温度和纹波电流的情况下,出现问题的可能性并不比固态电容大。所以intel放心地使用了这种电容。当然至今我也没见过intel SSD由于电容爆浆而损坏的案例。。。


至于为什么要采用耐压高达35v的电容?因为使用采用可变占空比的电压转换器和高压电容时,不仅电容储存的能量会大幅增加,而且能量利用率也会大幅上升。也就是具有更高的能量密度。Intel称这套标志性的系统为“PLI(PowerLoss Imminent)”。那么具体这套系统是怎么工作的呢?

首先,电容储能的公式为1/2CU^2.也就是说,能量和容量成正比、和电压的2次方成正比。大家可以计算一下,仅这两颗电容,就可以达到P420m那一块庞大的掉电保护子板三分之一的储能容量。

对于能量的补充和释放的设计则更加巧妙。我们首先复习一下DC-DC开关电源的结构:



这是一个很简单的电路,Driver会控制Q1和Q2两个开关(用mosfet开关管实现),使它们高频率地打开与关闭。
Q1导通Q2断开时,电感L左端电势会提升到+5v;当Q1断开Q2导通时,电感L左端为0电势。如果这两个过程高速的轮流进行,又由于电感有阻碍交流电通过的特性,电感L右端会产生相对稳定的一个介于0+5V之间电势(如1.8V),再通过滤波电容C滤波,我们就可以在右边的输出端获得所需要的电势,在此处就是对地电压。通过调节这个两边轮流进行操作中两个过程的时间比值(即占空比),就可以调节输出的电压。

这样,你就知道为什么要采用升压储能设计了吧?以往的设计中,因为电容本身的电压在放电时会线性下降,其实电容的能量没用掉多少就不能用了,因为电压低于设备需要的电压了,就像下面左图里那样;而如果进行升压储能,我们可以把程序设置的更加巧妙,根据电容电压的情况动态调节占空比,使得掉电保护模块输出的电压在电容放完电之前保持在允许范围内的时间显著增长。这样就能榨干电容的电力,成倍的提升其实际输出电能。

这套系统,配合上XOR在掉电时更少的电源消耗,其维持时间也许并不比美光P420m用钱堆出来的掉电保护方案来的短。。。


由此可见,相对于美光P420m动辄32通道64颗粒、9颗缓存、3片pcb、几十颗旗舰级钽电容的“大舰巨炮”的战术,Intel的方案显得更为精密而巧妙。Intel对这个方案抱了很大的期望。但是其能否四两拨千斤,实战测试将决定一切。

最后则是三星SM951.近期玩硬件的玩家必然了解这个相当知名的产品。它是一个轻量设计的SSD,结构很简单,重在占用空间很小,是NVMe协议在桌面级产品上的第一次体现。其仍然采用了成熟的2D NAND闪存,规格也相当规范,没有过多可提的亮点。当然由于其主控只有8个通道,本次测试涉及3片SM951,并使用其中2片组成Raid0阵列,给其以一战之力。



测试:


注意事项:

首先,还是那个老生常谈的问题:什么是性能?

相当多的小白都是闭着眼跑分,懂的稍微多点的知道要看跑分里的“4K性能”。这是一个非常大众化的误区。问题何在?其实这种粗暴的方式问题相当多,我列举其中几个比较明显的:

1.一致性问题:一般跑分会给出红色框子里的峰值性能,而实际使用中你可能会经常体验到蓝色框子内的最低值。而由于应用程序本身和等待其他硬件的延迟
使得平均值和最大值往往是过剩的,真正影响体验的往往是低性能的那段。对于桌面与工作站应用,“不慢不卡”比“最快能跑多快”更加重要。


2.延迟:ASSSD这种爆发跑分软件给出的延迟非常不准确,并且也没告诉你具体是什么情况下的延迟。实际上很多比较差的SSD在复杂情况下延迟可以达到数秒钟,影响体验不说,这又可能使软件内部timeout,像滚雪球一般造成更大的问题。显然在桌面或工作站应用中,我们关注的是操作以后多长时间能处理完毕,而不是单纯的一次能处理几十万条指令这个数字吧

3.队列深度(QD, QueueDepth):桌面及工作站应用虽然很少有数据服务器那样持续的高QD操作,但是负载往往是集中在短时间内发生。在程序加载数据过程中队列深度绝不可以简单粗暴地用QD1(ASSSD中4K那一栏就是4KQD1性能)来描述。实际上在Raid0等情形中,虽然随机QD=1性能基本不变,但是QD≥2的情况就有一定提升了。

4.稳定态:SSD会在其应用环境下达到一种叫“稳定态”的状态。在一个应用环境下SSD的性能随着时间会逐渐变化到一个极限状态,这个极限就是稳定态(由于离散误差的存在,这个极限是可以达到的)。这才是SSD真正使用中的状态。虽然桌面情况下这个问题没有服务器中那么明显,但是这也是一个不能忽视的因素。显然这个因素在爆发跑分里完全涉及不到,就算之后人为测量也很难正确评估,因为它根本不会给你速度曲线。

这是Tom‘s hardware给出的一段说明:



总之,我们要测试的是“性能”,而不是“跑分”。要的是衡量硬盘的真实性能,而不是娱乐。

另一个问题就是,可能会有人反映,某SSD别人测出来IOPS为什么比你高几倍?这并不是测试方法出了差错,而是故意为之。国外很多评测站都只去测RAW性能,也就是没有文件系统的时候跑出来的成绩。从某种程度上而言这种方法显然忽视了实际使用中必然会接触的一个因素。曾经看过一些SSD,在RAW下跑的曲线很漂亮,分区格式化后基本就是废物了。。。测试为的是为评价实际使用性能而做,并不只是为了跑出来好看;我们要看硬盘在实际环境中能表现出多少性能,而不是它们能跑出多高的成绩。所以本次测试由于面向桌面与工作站应用,会在测试时将磁盘格式化为NTFS,并且按照美光给出的SSD测试规范进行“Precondition”处理。这些均在IOmeter中进行。



参测产品:

Sandisk Lightning LP406M 400GB (SAS to PCI-e)
Sandisk A110 256GB (Native PCI-e AHCI)
LSI Warpdrive NWD-RLP-1860 1.86TB (SAS to PCI-e 4xSF2582 R0)
Micron P420m 700GB/1.4TB (Native PCI-e AHCI)
Samsung SM951 256GB(包括Raid0)(Native PCI-e NVMe)
Intel 750 1.2TB (Native PCI-e NVMe)
Intel DC P3605 1.6TB(Native PCI-e NVMe)
HGST He6 6TB 充氦机械硬盘
各种以往的SATA SSD


测试环境:

CPU:Intel E5-2698B v3 @2.0GHz Turbo 2.4-3.4GHz
主板:华硕 X99-M WS
内存:海盗船 Dominator Platinum 2666C16 8GBx4 @2133 15-15-15-362T
显卡:AMD Firepro W7100 8GB
操作系统:Windows7 64bit
文件系统:NTFS
驱动程序:(厂商提供)
测试软件:IOMeter 1.1
数据类型:Pseudo Random

测试方法:
1.使用IOMeter测试各项峰值与稳定态性能;
2.记录并分析延迟特征;
3.实景测试,进行实际操作环境中的测试并记录等待时间。

测试中的名词解释:
IOPS:每秒处理的I/O指令数量,也就是吞吐量。它可以和带宽(MB/s)进行简单的换算,比如随机读取,IOPS为10240,每一个请求的大小是4KB,那么其带宽就是4KB×10240=40MB/s,也就是常说的asssd中的“4k”性能,又如连续读取2IOPS,每个请求大小为1GB,那么其连续读取带宽为2GB/s。
队列深度(QD,QueueDepth):所有读、写指令都会被放在一个队列里,由SSD从队列里提取出来完成。如QD256代表每个时间点同时有256个指令在队列中。
稳定态:SSD在一个环境中长时间工作后达到稳定状态。对于写入,SSD往往会在一段时间后性能突然下降后趋于稳定,而对于读取,SSD性能往往一直保持在一个水平上下浮动。
OP(Over Provisioning):即将SSD留出一部分空间用以优化性能、提供数据保护等。空间的大小设有出厂值,也可以手动给出。


峰值性能测试:

连续读写性能趋势:


读取性能方面,最抢眼的是美光P420m,毕竟标称3300MB/s也是最高的。请求大小2MB时三星SM951 Raid0有个突然的提升,达到了类似intel方案的带宽。LSI warpdrive中规中矩,很符合4块sata盘加起来的带宽,闪迪Lightning由于只有一个子盘,性能也和之前的sata硬盘差不多。这里也能看出,具有XOR、RAIN、RAISE等技术的盘在请求较小的时候性能没有不带这种校验功能的盘带宽大,因为具有这种设计的盘再小的请求都需要同时读取一个固定大小校验信息。

写入性能方面类似,不过intel P3605现在成了写入带宽最高的。这时三星SM951及其Raid0方案性能出现了一些不稳定状况。P420m则下降到较低的水平。

不过不论是读取还是写入,由于PCI-e带宽优势,原先的sata硬盘都是无法一战的,机械硬盘也一直是垫底。另外注意,“4K性能”是一种非常不严谨的说法,其不一定代表随机性能,处理连续的4KB大小的读写请求的性能也可以称之为4K性能

随机读写性能趋势:


读取测试中仍然是P420m最优,得益于其霸气的32通道主控。Intel和三星紧随其后。

写入测试,三星SM951 Raid0取得最高分。Intel方案只能屈居第二,毕竟其各种数据校验步骤需要付出一定的性能代价。然而三星在此测试中出现了不稳定的状况,测试多次才找到一次曲线比较正常的,不论在转接卡、华硕主板还是华擎ultra M2上。

可以说在峰值随机性能方面,家用级并不差,sata SSD也不是像想象中那么不堪一击。另外在队列深度稍高的时候,Raid也是可以增加其随机性能的。

混合读写测试IOPS及延迟(80:20读:写):



在这种稍微复杂一点的情况下,固件编写的水平差距出来了。Intel方案一骑绝尘,不管是IOPS还是延迟都远远领先其他产品。这里也可以发现一个问题:不是使用PCI-e、NVMe的SSD延迟就一定低。使用sata通道AHCI协议的DCS3700延迟性能仍然属于第一梯队中;而SM951单盘的情况下出现了更严重不稳定的状况。至于机械硬盘,当他死了就好。

这种状况已经很复杂了?不,我们还有更可怕的。


稳定态性能统计:

首先是队列深度为1的随机读取性能。我们记录下1000秒内速度的变化曲线。



美光P420m与P3605属于第一个层次,750紧随其后。它们的性能都非常稳定。三星SM951性能波动较大,但是仍然在一个比较高的层次。值得注意的是老将DC S3700(浅绿色线条),虽然是sata通道但是仍然性能不俗。

我们看看延迟变化趋势:



SSD
的延迟大部分都在10ms以内,包括SATA通道的。机械硬盘其实也不算太差。但是在10ms以上仍然浮着一些较高延迟的点,其中大部分是SM951 Raid0的,也有少数Warpdrive的,甚至高过机械硬盘的平均延迟。毕竟Raid0会对延迟性能有一定影响,而SM951目前看本身性能就不是那么一致。

另外,这也说明了为什么一些人仍然认为机械和SSD用起来差不多。人对正常的高速的状态不那么敏感,但是系统一旦出现卡顿则很容易被发现。SSD性能一致性问题产生的高延迟恰巧容易被发现。

队列深度为1的随机写入性能:



进入写入稳定态以后,差别就出来了。很多优秀的SATA硬盘甚至处于领先状态,而PCI-e接口并不能让SSD在这上面获取优势。在这种状态下,SSD必须在写入的同时进行垃圾回收,同时保证每一个指令完成的时间可控。这就纯考验SSD自己的素质了。三星SM951性能波动还是很大的,但是Raid0之后稳定了下来。

另外,P3605甚至没法进入稳定态,由于其巨大的OP容量造成的性能优势,将写入时间增加到5000秒仍然没有性能下滑。其队列深度1就是菜13,我要打10个。

延迟趋势:



分化很明显,在刻度50ms的坐标系下,好的硬盘延迟非常贴近0,素质一般的甚至没有到稳定态延迟都可以超过100ms达到人可以轻松感知的范围,甚至超过机械硬盘的延迟,包括闪迪A110简直是PCIe界的耻辱。。。SATASSD表现仍然不差,但是最值得称赞的是三星SM951,虽然仍然不是很理想,但是终于消除了840pro时代漫天飞舞的高延迟。

队列深度32的随机读取性能:



没太多可说的,和QD1的情况差不多。我们看看延迟变化趋势:


在如此多的并发指令下,机械硬盘已经飘走了。。。

SM951单盘变得惨不忍睹,仍然是Raid0拯救了它,让延迟稳下来。Warpdrive也有一些个别的高延迟,不过都在30ms以内,对人来说很难感受到。

接下来是SSD的噩梦:队列深度32的随机写入测试。测试进行5000秒,以极大的压力压榨SSD的性能。



差距被拉大。Intel DC P3605仍然是一个神一般的存在,高出第二名接近一倍,而且还在测试过程中不断优化自己的性能。LSI Warpdrive也展示出SF主控4盘阵列应有的性能。而三星仍然是相当熟悉的性能下降,不过至少IOPS稳定住了,比上一代具有很大的进步。三星终于开始不再专业进行爆发跑分,肯在一致性上下功夫了。

美光P420m则出现了很奇特的性能变化表现。其没有峰值状态,在初始化的低速后一直稳定,之后进入限速状态。对比RAW下的测试,美光出现这种状况的原因可能是其对NTFS系统的支持并不是那么友好。

另外,其实sata组的性能也还算不错,同样的规模上不输于PCI-e。

延迟趋势:



当任务的复杂度上去以后,100ms附近的延迟也就司空见惯了。当然,也有应付的柔韧有俞的P420m P3605和750,Warpdrive的表现也不差,保持在50ms以内。但是SM951的延迟明显出现了分层,大概分出来7层外加一些散点,这与主控8个通道不谋而和,表现出了SSD不同时间的不同占用状态。

当然,这里有一个关键因素:OP容量。这就是OP容量的第二个重要作用:增加稳定态写入性能。之前说过,SSD在稳定态中必须在处理指令的同时进行垃圾回收。SSD主控是很苦的,不仅要考虑什么地方可以删什么地方不能删,而且要把不能删的东西挪动位置才能进行擦除操作(写入的单位page比擦除的单位block细得多),还要考虑怎么排列这些数据增加耐久,更要考虑每一笔任务的交期不能长。。。更多的可用空间会让可整理的余地更大。稳定态写入性能与OP容量直接相关。

我们把所有盘的OP容量都放到一个水平,然后再进行这个测试:



现在,SM951的性能分裂成2个状态,高性能状态和intel DC P系列性能差不多,低性能状态则相当低。这种特点在家用级SSD中非常常见,反映了SSD是否在占用通道进行GC,但是在要求比较高的环境中性能的大幅波动是致命的。三星在一致性/QoS上还有很长的路要走。

你以为队列深度32(QD32)就结束了?不,因为NVMe协议在队列上的改良,我们将队列深度设置到256测试其读写性能。

首先是QD256读取。



提升最明显的就是SM951,由于采用了NVMe协议,性能甚至赶上了P420m。紧随其后的P3605则是有一个初始化性能提升过程。而对于通道数又少又没有NVMe的闪迪Lightning来说,QD256和QD32在吞吐量上并没有多少区别。

延迟趋势:



对于闪迪Lightning来说,更多的并发指令只能变成累赘。其延迟相对QD32时有所增加。忍受不住压力的Warpdrive也更加频繁地出现高延迟点。规格强悍的P420m以及采用NVMe的P3605、SM951则仍然具有优秀的读取延迟表现。

QD256随机写入性能:



相对于QD32的情况,由于更多的指令使得强大的规格得以发挥,Warpdrive、P420m、DC P3605和750系列都有一定的提升。其他的则老老实实地待在低性能的范围内。毕竟,只有8个通道的情况下,不管有没有NVMe,吞吐量也就那样了。

延迟趋势:



指令数量更多对吞吐量是好事,但是对于延迟来说,它可能会造成灾难性的后果。在队列深度达到256时,每一颗硬盘的延迟都有不同程度的增加。然而优秀的SSD毕竟优秀,美光P420m和Intel DC P3605在初始化以后仍然将延迟限制在50ms以内,LSI Warpdrive也不差。闪迪Lightning则轻松上百。更要命的是三星SM951,画面太美不敢看。。。

同样的,我们将OP容量放到同一个水平,再次进行测试。



将SM951的OP放大以后,和QD32的情况类似,IOPS出现了分层。我们看看延迟:


SM951
及其Raid0的延迟得到了很大程度的改善。虽然经常达到100-150ms以上这个人容易感知到的区间,但是至少不是200保底,虽然能感觉到,但是并不会造成严重的卡顿



如果散点图看不清,请下载原测试统计excel文档:
  1. 链接:http://pan.baidu.com/s/1kVKyYjl 密码:ji7s
复制代码

延迟统计:

我们不妨换一个角度,看看这些测试中都出现了多少次不同长度的延迟?

测试中将较高的延迟分为多个区段,看落在每一个区段内的数量。当然,越高的延迟数量越少越好。

QD1随机读取延迟分布:


只有QD1的话,大家的延迟都还可以,没有超过50ms的。

QD1随机写入延迟分布:


这时,大家就有点“擦边”了。有一些硬盘出现了大于100ms的延迟。不要谈840pro的4.7秒延迟,那是黑历史。。。

QD32随机读取延迟分布:


SM951
单盘的延迟开始变坏,但是Raid0仍然能hold住它。

QD32随机写入延迟分布:


有4块盘开始出现200ms以上的延迟。SM951比840pro的情况好得多。然而intel的表现令人咋舌,在别的盘出现“危机”的时候,intel全家,不管是sata还是PCI-e接口,都具有相当低的延迟,30ms以上的延迟仅有S3700出现过24次。要知道总体样本容量有几百万。。。

QD256随机读取延迟分布:


Warpdrive
开始出现较高的延迟,intel和三星方案表现良好。比较特殊的是美光P420m。之前在曲线图上有些朋友会注意到,P420m在安全擦除后达到稳定性能之前会有一个“预热”阶段,这个阶段中IOPS较低、延迟较高。不过就算是“较高”的延迟,也都在100ms以内的安全范围内。

QD256随机写入延迟分布:


很多盘开始出现100ms以上的延迟。但是如果不算美光的预热时间,美光P420m和Intel DC P3605延迟性能仍然坚挺。750则处于“卡线”状态,虽然没有太高的延迟但是30ms以上延迟还是不少的。具有成为强者的实力的才能被称为强者,驽马再怎么标榜也不会被伯乐看上,这就是目前企业级市场的现状


实景测试:

对于桌面应用的实际应用情景,我们选几种进行实际测试。注意,这些测试都是峰值性能测试,并没有考虑到SSD的性能衰减

Windows启动时间(不包括自检):


由于win7目前的NVMe驱动问题,采用NVMe协议的硬盘目前没有什么优势。桥接的盘更慢。不过最快和最慢相差仅在一秒左右。

虽然测试中成绩最好的是S3500,但是在较复杂的或者有一定使用时间的系统中,如tom’s hardware的服务器启动测试中,DC P系列可以比DC S系列快上20秒(44.5s与64.8s)。

3dsmax 2015启动时间:


其实3dsmax加载过程中硬盘读取的内容并不算多,更多的时间用于初始化各种插件与显卡等硬件。随着SSD性能的增加我们看到性能只有百分之十几的提升。

Photoshop CS5启动时间:


这里我们就能看到一些提升了。不过PS的软件执行效率也并不高,更多的时候只是等待。

星球大战:前线“恩多生存”地图读取时间:


目前画质最好的游戏之一。虽然说这种大型游戏在加载的时候更多是显卡的工作,但是SSD之间的差距也被拉开了。第一队包括P420m、P3605与Warpdrive这三个连续读取性能较高的硬盘,但是SM951 Raid0却相对弱一些。这点之后会分析。

好SSD对优化得当的应用和硬盘性能占比较多的应用是有很大提升的。它可以让人感受到与机硬盘械到SSD程度接近的提升,不过前提是,它真的是一块好SSD。

星球大战:帝国战争Mod“盟军v7.0B”读取时间:


这就是典型的老游戏,更是老引擎+一大堆mod/dlc的代表。由于软件执行效率实在太差,硬盘之间拉不开差距。

高速点击测试:

测试使用了一些常用的小软件,将其移动到各个硬盘上,使用樱桃DG4微动以最快的手速依此点击每一个程序并重复3次。使用按键记录软件记录操作,使用秒表测量所有程序都启动需要的时间,以测硬盘的响应速度。



可以说这里的SSD基本都一样。手速和系统延迟占主导地位。SSD造成的“系统响应速度”的差别是不存在的。然而在其他软件如浏览器中则是另一种情况。


掉电保护测试:

CPU-z保存认证文件后立即切断电源,看重启后这些文件能否仍然通过认证。结果也很明显,具有掉电保护的硬盘都能保住这最后一笔数据。这在极限超频中还是很重要的。个别朋友表示好不容易留下来的认证和截图重启以后就没有了,在系统不稳定的时候,SSD很可能来不及更新映射表或回写数据。




分析:


有了各个项目的测试数据和实际应用中的表现,我们就可以试着总结一下规律:究竟应该用何种方式评价一块SSD的性能?

先从应用本身说起。对于一个大型软件,其大致可以分为引擎、数据库、插件、可执行程序4个部分。对于一个游戏,厂商往往会将各部分打包。所以说,我们看到的属性是这样的:


这样大大减少了文件数量,也增加了文件的连续性。如果不打包的话,其数据库,包括模型、贴图、script等文件会相当多。下图只是单独一个XML数据库中的文件。


如果把星球大战:帝国战争中所有包都解开,我们可以看到,文件的数量相当多,达到接近7千个。


对于HDD来说,这可能是个问题。但是对于SSD来说呢?

首先,我们假设很糟糕的情况下,每个文件都需要进行随机读取。对于一个“4K性能”只有5000IOPS(约20MB/s)的“糟糕”的硬盘,这些寻址任务也就需要1秒多。换成50MB/s的“好”硬盘也就是少半秒而已。然而这个游戏加载时间都要十几秒。对于Photoshop和3dsmax也是类似的情况,SSD每秒操作次数的占比太小。
况且大部分软件、游戏读取过程只需要读一小部分数据,并不是把整个软件拷到内存里。显然,SSD的随机读写带宽并不是桌面及工作站应用的瓶颈。

而对于响应速度而言,IOPS换算成“平均的”或者“最低的”延迟,再烂也是百微秒级别,远远小于显示器的刷新率。也就是说,“4K随机读取”这个小白常用指标基本可以判定为与使用性能无关。还是那句话,SSD的峰值随机性能强,不代表峰值随机性能强的SSD就快。

那磁盘性能中何者最重要呢?

首先,既然只要SSD发挥正常就不是瓶颈。那么发挥不正常的时候呢?这里就要考虑到“最大延迟”的问题。这里我们先撇去稳定态的问题,看看读取性能。百微秒的延迟不是问题,但是如果7000次操作中有1000次延迟达到10毫秒量级,积累起来的10s就不能忽视了。所以说为什么DC S3500虽然是sata接口老产品,但是还是可以与众多PCI-e SSD打的有来有回。

SSD在性能突然下降的时候也可以造成卡顿的问题。如两个指令占用了一个资源(如GC与读写请求冲突,在浦科特等具有激进的GC的硬盘上最为明显),卡顿可以达到一秒以上。所以说,虽然我们日常生活中用不到随机写入稳定态那么高的压力,但是我们也必须去看稳定态的散点图,关注稳定态性能。一旦遇到某些状况性能就大幅下降的硬盘可不是好硬盘。

其次,之前说过,软件厂商也知道优化磁盘性能,会对组件进行打包。包括读取地图、PS读取大图片、3dsmax读取大场景之类也是连续的操作。也就是说,“连续读取”占的比重并不小

结合之前的测试(给我翻回去仔细看),延迟表现并不差的P420m和intel DC P3605旗鼓相当,个别测试甚至可以小胜。这就得归功于其稍强的连续读性能了。SM951 Raid0虽然延迟表现难看,但是归功于其不错的连续带宽表现,至少其在众多强者中还具有一战之力。

所以说,我们应该更加关心性能一致性与连续带宽。但是请注意,性能差距在积累起来才有可见的提升,没有几倍的差距也就别谈哪个更强了。你可以说最大延迟1ms量级的ssd比100ms量级的强不少,但是大吹“某SSD具有550MB/s带宽,比某450MB/s的强得多”,你在搞笑么?
还有一个关注比较多的问题:系统启动时间。回头看看启动时间对比,你会发现,当系统干净的时候,启动时间都是非常短的。而使用一段时间后,系统会积累各种使启动时间变长的因素。这就涉及到一个很多人经常犯的错误:把问题归咎到“SSD掉速”上。

然而很多硬盘“掉速”后仍然很快,比某些没掉速的新盘还快。然而都在全新的时候,它们的启动速度并没有明显的区别不是么?


这就得从系统上找原因了。其实不光是系统,很多软件都人为设置了一定的延迟以保证正常工作,有时候这些软件还需要等待别的硬件响应与初始化。这就造成了一个“固有延迟”,硬盘再快也必须老老实实等着。比如游戏在加载的时候必须等待显卡准备。这就造成了之前测试中游戏读取时间在使用了更好的硬盘后,并不能成倍减少。

所以,不要以为你有个好硬盘就可以装各种国产垃圾软件。拒绝各种大湿各种管家,拒绝堆成山的启动项和服务,速度自然会找到你


还有一种常见情况,有时候系统积累了不少错误,其中不乏“给我等30秒宝宝再理你”之类的问题。有了这些问题,系统怎么能快?



说到底,养成良好的使用习惯,比不断去纠结硬盘掉速强得多。很多新手买了新硬盘重装了系统感觉快了不少,然后大肆感叹这个SSD是多么好,其实只是因为系统和软件上的问题解决了而已,可能新的硬盘并不如老的,也说不定。。。




结论:


测试和分析都完成了,相信你也有自己的一些看法了。这里我概括一下我对这些硬盘的看法:


Intel DC S3500/S3700系列:“Kights of the Old Republic”

它们不愧对“旧共和国武士“”的称号,因为从2012年S3700发布开始,它们的性能特别是延迟性能,在sata盘中基本遇不到敌手。经历了一代又一代,见证了闪存制程的3代更新、3D NAND和TLC的崛起、sata到PCI-e的更迭、AHCI到NVMe的普及,虽然它们早已不在性能王座上,但是它们仍然在时刻提醒着后来者:不要以为你是PCI-e接口就能怎么样。

Sandisk Lightning系列:“Relic of the Beginning”

SAS单盘+HBA组成“固态加速卡”,这算是PCI-e SSD的开端了。它的存在并不是为了性能而是为了Form Factor。它的性能参数也完全是SATA/SAS的水平。但是从此之后,性能级SSD就开始转向PCI-e总线。

其实在测试中,面对4种PCI-e原生主控,它的表现也相当可以,至今仍然可以算是不错的硬盘之一。虽然它发布时间并不算太早,但是它不愧为一个不错的早期PCI-e SSD。

LSI Warpdrive系列:“Old School Arithmetic”

Sandforce主控、多子卡阵列的方案到现在仍然被用在Warpdrive等一些企业级硬盘上。这种粗糙的方案虽然会增加延迟,但是得益于SF-2582主控本身就不错的性能,Warpdrive的延迟非但不成问题,而且可以说名列前矛。

而它的优势也是由这种架构带来的。多达8块子卡可以使其容量达到单卡4TB;多主控带来的高QD随机性能也相当可观。这些优势给了老架构以和新一代竞争的实力。实际上,在和原生大规模PCI-e主控的竞争中其并不占什么劣势,而其较少的开发成本也让它具有更多性价比优势。这也使得这个架构存活到今天仍然没有消亡。

Micron P320h/P420m系列:“Soviet Power Supreme”

新一代原生PCI-e主控终于来了,而P420m将其发挥到了极致。

在设计P400m时,美光已经展现出了作为一个颗粒厂的“霸气”,200GB的硬盘竟然使用了336GB闪存。然而P400m并不能对intel DC S3700构成威胁。于是在几个月后发布的P420m上美光更加变本加厉,32通道64颗粒、2GB ECC缓存、多PCB设计、0.19F的掉电保护电容、2TB eMLC颗粒、高达3300MB/s的连续读取和75W IOPS的随机读取性能,以一个极高的姿态向大家宣布,PCI-e接口的的性能大战正式开始。

P420m是一块下了血本的SSD。但是它的固件设计仍然拖了一些后退。由于其数据保护系统的效率问题,连续写入只有700MB/s是最大的痛;对于NTFS支持并不算好,性能趋势比较奇特,包括需要完全“Precondition”后才能发挥全部性能。

然而凭这些并不能否认P420m是一块相当不错的硬盘。它的延迟和延迟一致性相当突出,并不逊色于采用NVMe的intel产品。这对于桌面及小型工作站应用也是比较重要的。如果有那个资本、有可以让它发挥的环境,它也是不错的选择。顺带一提,P420m分为可引导版和不可引导版两种,需要用它装系统的玩家请注意

Intel DC P3500/3600/3700系列:“Flawless Evolution”

在S3700系列上市并成为众多厂商和企业高端服务器的首选之后,Intel当然也看到了sata/AHCI并不是长久之计,其他厂商开始推出性能更高的PCI-e总线SSD,想从另一个角度扳回一局。然而intel并不想给它们机会,于是DC P系列就以一个相当完美的姿态诞生了。其首发分为3个系列:P3500/P3600/P3700,分别对应读取密集、混合、写入密集定位

反观之前的所有测试,DC P3600表现出的性能根本就没有毛病可以挑,每一项测试都站在顶尖的位置。不光是峰值性能一直在第一梯队以内,更可怕的是,当负载更为复杂时,别的SSD最高延迟都轻松到0.2秒以上、高延迟计数都成百万的出现了,P3600仍然在焦虑:我冒出来十几个50ms的延迟,不会被打吧。。。

对于这种性能,已经是零售产品的极限了,我没有什么话可说。最想说的一点就是,DC P系列一点都不便宜,开挂是需要付出代价的。

Intel 750系列:“All Rounder”

DC P系列的成功使得众多发烧级玩家开始对它感兴趣。Intel并不是看不到这些,于是在2015年年中intel把P系列砍了一刀变成了750系列。

虽然说它源自DC P系列,而且包括XOR在内的大部分功能,但是为了降低成本,它被开了一大刀。1.6TB的P3600具有2304GB闪存,而1.2TB的750仅有1376GB闪存,而且是低一个级别的。这就造成了它的性能和耐久比P3500差了不少,只能算是具有企业级血统的家用级,而不能算是企业级。

不过对应的是,它的价格相对低了很多。而且延迟优势仍然明显,对于桌面和工作站应用,它仍然是一个全能型。“发烧级”的定位仍然相当准确。

Samsung SM951/950Pro系列:“Peashooter”

2013年三星发布了第一块M.2 PCI-e x4接口的SSD:XP941。在NVMe普及的年代,三星当然也要对这个产品线进行更新,这就造成了SM951的出现。

说道SM951,大部分玩家都会想到它惊艳的跑分。然而SM951并不是作为一款性能级产品出现的,它甚至仅仅出现在OEM市场。三星给它的任务就是,追求极致的体积,跑出华丽的爆发性能、投个好标,毕竟笔记本和嵌入式系统对性能的需求也就那样了。从之前的测试也看出,实际上它做的也是如此:涉及ASSSD、CDM等爆发跑分测试项目,如连续读写、4KB随机读写、高QD随机读写,它的跑分都相当高;遇到混合读写、稳定态读写或者去看它的性能波动的时候,事实都是残忍的。。。不只是三星,目前所有M.2 PCI-e SSD几乎都是一样的表现。

但是不得不否认,三星的固件功力有不少进步。至少在稳定态时相对的“稳定”了下来,没有像上一代那样出现众多的0点和高达4.7秒的延迟。组建Raid0后性能更加稳定,避免了很多问题的发生。虽然由于其延迟问题导致iops的稳定完全没有用武之地,但是这也是个好的开始。但它仍然达不到性能级的标准,更不适合用于服务器。毕竟动不动就几百毫秒的卡顿是这个应用环境中很难忍受的。同样其“原本的”价格也很符合它的性能,走OEM单的单价并不高。


然而,对于“硬件发烧友”来说首要问题是什么?是可玩性。

对一些人来说,SSD性能实际并不重要。让硬件跑出高分是最紧要的。本人以前就沉迷于superPI跑分、CPU-z频率刷榜、内存效能调节等玩法中。SM951的结构很简单,没有过多的数据保护系统作为累赘,玩家可以通过调节OP容量、优化内存性能、超频处理器等操作使得SSD跑分大幅上升,也可以更容易的组成多盘阵列刷新极限,同时hwbot也有相应榜单可供玩家竞争。这就是它被称为“Peashooter”的原因:有时候,我们真的在玩一个硬件,这时玩的爽、B装的舒服最重要。也许类似的容量价格比下750的性能强得多,但是SM951仍然占有可玩性的优势。在diy市场这也是一个不错的角度,也是某些组件如散热器正在转向的角度。


NVMe到底有多少作用?PCI-e到底有多少作用?还是那句话,NVMe只是给SSD发挥的空间,让SSD性能不再束手束脚。有多少空间不代表SSD能发挥多少,还是得看SSD本身的素质。泰森就算被绑住一只手你仍然打不过他,SSD也是一样。先得有性能,然后才能谈发挥到什么程度。对于现在的大部分桌面级产品来说,NVMe只是说着玩玩,PCI-e也只是堆带宽的手段,很少有产品真能发挥出PCI-e/NVMe的优势。关键还得看硬盘本身。

目前看,由于越来越多原生方案发布,老架构产品正在慢慢减少。各家都在转向原生PCI-e/NVMe方案,在变革过程中也有一些新兴的实力不差的厂商,如Memblaze,加入竞争中。Intel目前占有绝对的性能高地,他的延迟优化已经是成数量级的领先其他品牌的产品。但是三星在乎的不是现在而是未来。当年别人漠不关心甚至嗤之以鼻的3D NAND与TLC马上就将成为主流。NAND闪存领域,有容量就有未来,提升制程这条路已经走不通了,将单元立体重叠起来变成了最好的途径。目前三星的3D NAND已经达到64层之多。三星有硬件上和成本上的优势,intel有多年积攒的性能优化经验,谁会笑到最后还不得而知。


该说的也都说完了。最后,还是老生常谈的一句话:选择,要按付出和需求而定。我们不应冲动消费,更不应当人云亦云。很多追星族口口声声将各种人称为“老婆”“老公”,然而发现他们并不是神、仍然具有人性的缺点后就发誓再也不去管他。PC硬件中的“信仰”也是一个道理。随便听几句谗言、跑个分就产生了“信仰”,结果只有2个:稀里糊涂不知道钱怎么就没了,或者对买来的东西非常失望。

总之,钱木有了,时间木有了,精力木有了。而它们本可以放在更有意义的地方,做更有意义的事,给自己带来更多的价值。

学会去了解自己的需求、自己有多么需要它们,去看到别人包装的美丽外壳下的本质。知己知彼百战百胜。能说的,也只有这些。



附录:

1.
参考文献:

Tom Coughlin,Gordon Hughes - Tutorial on Disk Drive Data Sanitization
Jung H. Yoon - 3D NAND Technology – Implications to Enterprise StorageApplications
Danny Cobb – IDF 2012 NVM Express and the PCI Express* SSD Revolution
Scott Shadley – Micron SSD RAIN brief
Doug Rollins - A Comparison of Client and Enterprise SSD Data Path Protection
Jon Tanguy - Securely Erasing Micron® SATA SSDs
Don Walker - A Comparison of NVMe and AHCI
Micron Corp. - How Micron SSDs Handle Unexpected Power Loss
Micron Corp. - P320h/P420m SSD Performance Optimization and Testing Introduction
Intel Corp. – SSD 710 series het brief
Intel Corp. – SSD technology terminology guide
Intel Corp. – Intel® SSD DC Family for PCIe* Brief
Intel Corp. – Intel® Solid-State Drive DC S3700 Datacenter RAS Features
Intel Corp. – Performance Benchmarking for PCIe* and NVMe* EnterpriseSolid-State Drives
Oracle Corp. - Oracle® 1.6 TB NVMe SSD User Guide
Samsung Corp
. -Samsung V-NAND technology
Drew Riley - Micron P420m SSD Review: 1.4 TB Of PCI Express-Attached Storage
Drew Riley - Intel SSD DC P3700 800GB and 1.6TB Review: The Future of Storage
Wikipedia – BCH code/
Low-density parity-check code
Kristian Vättö - Samsung SSD XP941 Review: The PCIe Era Is Here
brokenegg -
蛋蛋读NVMe系列
  1. http://www.ssdfans.com/?p=1086
复制代码
陈燕, 蔡灿辉 - LDPC 码的译码算法研究

2.FAQ

①Q:测试软件和测试预设能否拿来?
  A:自取不谢。
  1. 链接:http://pan.baidu.com/s/1nvyFYjR密码:lfa0
复制代码

②Q:为何不拿三星的旗舰企业级SM1715做对比测试,而使用家用级的SM951?
  A:穷,你给我买我就测。另外SM951的主要对手是同为家用级、容量价格比类似的Intel 750系列。

③Q:为何不包括相当有代表性的IO Drive?
  A:同上。并没有多余的软妹币买来测试完就丢那吃灰。

④Q: 为什么少1组P420m的峰值写入IOPS测试?
  A:抱歉,硬盘进入限速状态并且无法恢复。恢复后补全混合写入测试后又出现状况只好放弃。

⑤Q:DC P3608咋样?
  A:看成2片P3600 Raid0做在一张卡上就行。唯一多的功能是,当一个主控坏了另一个还能继续顶着不变砖。

⑥Q:新的SM961怎么样?
  A:按Tom’s的评测,混合读写有一些改善。主控更新、闪存更新为3D MLC。稳定态也稍有改善。不过除了持续带宽并木有什么本质性的变化。比SM951Raid0好在更安全、更容易引导系统。


















本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
探寻极致性能 2016年PCI
2016年科技产品前瞻(2):固态硬盘篇
超能课堂(5):NVMe到底是什么?用它的SSD有啥优势?
2015年度回顾(1):十大固态硬盘
用3D XPoint的傲腾900P有多强?高不可攀的性能天花板
6款PCI
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服