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

毁三观?你所不知道的那些SSD的事 • 三

[复制链接]
跳转到指定楼层
1#
nighttob 发表于 2014-8-8 23:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:33806|回复数:41
本帖最后由 nighttob 于 2014-8-9 22:41 编辑

第一回 http://bbs.pceva.com.cn/thread-96059-1-1.html (补档)
第二回 http://bbs.pceva.com.cn/thread-96063-1-1.html (补档)
既然有人要求来点新鲜货,那么就满足你们。
这也是论坛回档以后,咱的第一个新帖。补档的12篇帖子多少都有一些修改,大部分是帖子之间的内容关联更密切了,有空不妨再看一遍。链接就从我的空间里找就是了,点我头像上方的名字,拉到下面找“主题”就全有了。

下面进入正题



SSD主控也有步进升级

大家都习惯听CPU和芯片组升级步进,但SSD主控的步进就很少听说了。就像CPU和芯片组以样,SSD主控步进升级也会修复一些BUG、改进稳定性或者提供一些新特性,就比如我们熟悉的SF-2281主控。

作为一款长寿的主控,SF-2281从最初的高端到如今的烂大街,几乎所有SSD厂商都出过SF-2281主控的产品,其中不乏Intel和KST这样的大厂,而那些听说过或者没听说过名字的中小厂商就更多了。SF-2281如此受欢迎,其自身强大的能力当然是最主要的,它的某些指标即使今天来看依然很先进。而且提供公版方案,也可以让刚入门的厂家不至于抓瞎,但这也直接导致这颗主控被某些无良商家给搞臭了,也让很多人误解了它。

毕竟SF-2281是2011年的主控了,想想当年的NAND颗粒还是34nm,而现在已经是1xnm了。3年间颗粒制程进步了3代,算上初版,SF-2281也有3个主要步进版本。

首先是最早的正式版步进,SF-2281VB1(以下简称VB1),随着当年OCZ Vertex 3等一系列产品登场,被人熟知的还有Intel 520系列和KST V300系列。

(图为Intel 520)

但很快人们就发现VB1有个很大的BUG,就是虽然标称支持AES-256加密,但实际上只有AES-128,这也导致包括Intel在内的一些厂商被坑。而要使SF-2281重新支持AES-256加密,就是第二个步进,VB2的任务了。

(图为ADATA SX300。小知识,有两行等大等长数字的颗粒,就是威刚的白片,非常容易辨认,可以在西数的真•混合硬盘上见到它)

现在在售所有标称支持AES-256加密的都是VB2步进的了。但VB2普及已经是2013年了,这时候20nm颗粒已经有了。由于Intel的猪队友Micron不给力,20nm的L85颗粒对ECC要求太高,直接秒杀所有老主控。为了能支持L85颗粒,SF-2281重新流片数次。本来VB2就要支持L85的,后来的VB3也是失败,直到VB4才成功。

(图为KST MS200 240G。MS200是个挺老的系列,之前有60G和120G版本,搭配的是SF2241这个4通道节能/缩水主控)

即使靠步进升级,ECC能力能跟上新颗粒的要求,主控自身的一些性能指标还是落后了。这也使得本来用来拯救烂颗粒的主控,反而需要颗粒来拯救它了。(例子就是KST V300换颗粒前后)

现在麻烦的问题在于下一代SF-3700系列难产,现在还只有跑分都不利索的样品。虽然规划的很美好,但在新产品上线之前,SF系的大旗还得靠SF-2281来扛。

除了SF-2281以外,另一款经典主控 Marvell 88SS9187也经历过A2 A3 A4几个步进升级,但跟其他主控一样,这些升级都不太声张。不像CPU和芯片组的步进升级,铺天盖地地宣传,怕你不知道。


设计影响颗粒速度

NAND颗粒可以通过接口速度来分级,比如我们知道ONFI标准有同步和异步之分,那些参数上达不到同步要求的就被刷下来做为异步颗粒。就跟无法在CL=11的要求下跑到800MHz的内存条就不能标PC3-12800,而只能降级作为PC3-10700类似。这并不是说异步的品质就比同步的差,只是等级较低,只要不强开同步(超频)的话,二者的寿命是一样长的。

封装形式同样会影响颗粒速度。拿Toggle标准颗粒来说,如果用TSOP封装,颗粒速度就被限制在100MHz左右,而换用BGA封装,就可达到200MHz甚至更高。这跟现在DDR3内存就没有TSOP封装是类似的,BGA封装的电气性能更好,利于高频稳定。所以可以看到新款SSD用东芝颗粒的,清一色全是BGA封装。遗憾的是,虽然颗粒往往可以跑到400MB/s的高速(200MHz频率 x 8bit接口位宽 x DDR = 3200Mb/s),但多数主控无法支持这么大的接口带宽,所以实际上颗粒大多是降频运行的。

(图为浴室评测SanDisk Extreme II的颗粒,虽然颗粒可以跑到400MB/s,但Marvell 88SS9187主控只支持200MB/s的通道速度)

不仅如此,当颗粒总容量达到主控和固件所支持的容量上限的时候,颗粒也会降频。这也跟主板上插到最大内存上限容量不易跑高频和RDIMM插满内存直接降频1档或者2档类似。高容量会对整个系统产生一定影响,这个影响大小一定程度要看SSD厂家和技术能力。比如200MHz的颗粒,做的好的只降低到180MHz左右,做的不好的就只有150MHz。


映射表中学问大

作为NAND颗粒内数据的“目录”,闪存映射表有非常重要的作用。以往我们听说这个,更多的是突然掉电,然后重启不认盘。这是因为映射表损坏,虽然数据都在,但不知道谁在什么地方。如果固件完善的话,可以让SSD通电静置以自行修复,甚至可以满血复活,比如我们熟知的美光M4 30分钟大法。但M4掉映射表的概率太高,不是突然掉电的问题,是它的DRAM缓存太烂,通着电都能出错。

回到映射表本身,目前SSD的映射表的主流方案是page mapping,顾名思义,以NAND颗粒的page为单元在DRAM缓存中建立映射表。在早先,由于NAND颗粒的page尺寸正好就是4KB,所以page mapping有着非常好的性能,同时结构比较简单。随着颗粒制程进步,从34nm到25nm再到20nm,page尺寸从4KB翻倍到8KB再到16KB,page mapping的单元也随之变大。但文件系统的最小数据尺寸还是4KB没变,如果直接把4KB数据写入到16KB page的SSD中,就需要在4KB的有效数据后面填充12KB的无效数据。因为是无效数据,当再有4KB数据写入的时候,就要把这个包含12KB无效数据的page一起读出来,修改掉其中的4KB为新的有效数据,然后将这个包含8KB有效数据和8KB无效数据的数据块再写入到新的page里。这个操作被称为R-M-W (Read-Modify-Write,读取-修改-写入。这个现象在SSD 4K不对齐和AF格式HDD 4K不对齐的情况下也会发生)。如果每次写入的4KB数据都不连续的话,会造成4倍的写入放大,而且会比较明显地影响性能。

page mapping的性能问题在M4时代就已经有所显现了,不过那只是256G和512GB的M4才用8KB page的颗粒。后来8KB page颗粒普及,到现在16KB page要成为新主流,如果继续用page mapping,无论对SSD寿命还是用户体验来说都不好。所以有了page mapping的改进型,4KB mapping和half-page mapping。顾名思义,4KB mapping就是以4KB为单元做映射表,而half-page mapping就是以半个page尺寸为单元做映射表。这样做的好处是当写入数据为4KB或者8KB时,依然保持高性能。当写入数据不足以填满整个page时,写入数据将被DRAM缓存,待有新数据写入时合并一起写进page里,或者超过一定时间就直接写进颗粒,以避免突然掉电带来的损失。

使用4KB mapping和half-page mapping也导致一个后果,那就是DRAM缓存容量要随着SSD总容量变大而增大;而page mapping就好很多,毕竟page尺寸也相应翻倍了。那么SSD的DRAM缓存里到底有多大空间是装映射表的呢?一般来说一个mapping entry(也就是映射表的最小单元,一个mapping entry对应一个4KB或者page)是4Bytes,如果1块512GB的SSD采用4KB mapping,映射表大小也就是512MB,正好是1GB=1MB。如果NAND颗粒是16KB page的话,采用half-page mapping和page mapping则减半再减半。经过压缩和优化,mapping entry还可以缩小,使整个映射表体积变小。

而“另类”的SF-2000系列主控用的是sector mapping,也就是512B mapping。可以说映射表超级详细,所以也难怪SF-2000系列主控没有DRAM缓存,8倍于他人的映射表体积也不是一般DRAM颗粒可以装得下的,结果就直接全塞在NAND颗粒里面,省得再费心了。SF系主控的映射表太过独特,这里不再讨论了。

那么如何判断一块SSD使用了哪种映射表方式呢?可以测量随机4KB、半个page尺寸和page尺寸的写入IOPs值,如果三个IOPs基本相同,那么就是4KB mapping;如果不同,再根据数据块尺寸和物理page尺寸来分析确定。

另外,DRAM缓存并不是专门用来放映射表的,虽然映射表是很大的一块。如果你测试和计算以后发现DRAM比映射表大得多,剩下的DRAM空间可能是用来存放颗粒磨损平衡、更详细的映射表,当然还有数据缓存。而且现在DRAM价格不高,为了简便制造工序,一系列都用同一容量的DRAM颗粒也是可能的。

这里还是要提醒,我本节提到的都是比较理想化的情形,事实上会复杂的多。映射表其实是SSD固件算法的一部分,为了保证SSD的可靠,编写一个好固件是非常复杂的,其设计难度不亚于设计SSD主控。这里只是简单带你认识映射表,太复杂的我也不理解,如果看不懂很正常……


随机4K够用即可

系列第一回我就提到过4K的事,但无奈拿着AS SSD和CDM跑分来问你4K是不是低了的人还是如潮水般。

用我在各种“软RAID”在日常应用环境下的性能表现这篇帖子里的比喻就是 (原文很长,如果没耐心的话就别看了)

现在很多人说单线程4K如何如何,但这个值是很难以提升的,单线程4K写入理想情况就是颗粒的编程速度(这个在浴室的各个SSD评析里面都会讲),而单线程4K读取实际上是SSD内部寻址延迟的体现。要提升单线程4K写入相对简单,用编程速度更快的颗粒、更快的闪存通道、更快的主控;而想提升单线程4K读取就困难的多,延迟的产生其实是物理定律的体现,我们当然可以用更大的缓存去储存一个详细的闪存映射表,但信号要走过的路径还是要比点对点要长。形象点说就是我们在一片田地里种种子,单线程4K写入就是拿一颗种子随便找一个坑种进去,单线程4K读取就是从田地的所有坑里找一颗特定的种子,哪个更复杂显而易见。

如果说随机4K写入可以靠更好的硬件来实现,随机4K读取就纯粹是延迟体现了。

为了4K而组RAID 0,完全是适得其反。对RAID来说,低于条带尺寸的数据就不可再分了,而对SSD来说,低于4K的数据不可再分。在绝大多数情况下,条带尺寸大于等于4K。所以随机4K不会因条带而收益,反而会因为增加一层RAID逻辑,而使延迟增大,导致4K降低。(实测数据都在上面的帖子里)

很多人也知道,节能和CPU性能同样影响延迟,所以关节能,还要让CPU跑满频。只是初次使用,跑个分作为基准留档当然没问题,日常使用中还这么干的话,就得算算一年下来多交的电费钱够不够买个新盘的了。同理,由于笔记本平台CPU性能低,还有各种电源管理措施,所以笔记本平台当然跑不过台式机,更不用提一般评测的时候还会给CPU超频。

有空纠结如何提高SSD的4K跑分,还不如直接换平台、换CPU。

那么如何才能降低延迟?

第一回就提到下一代存储驱动界面NVMe,但普及还需时日。

在现有平台中,降低延迟的最佳手段就是让设备离CPU更近一些,比如SoC化,在CPU内部直接集成存储控制器,而不再走外部总线。杯具的是,目前的桌面SoC性能都比较低,由集成降低的延迟会被低性能给抹消掉。这种SoC也极大地限制了芯片规模,所以在高性能领域SoC很难实现。

目前的南桥,其实就是个大交换机,把从CPU来的有限带宽,分配给尽可能多的外围设备用,这种再分配也就导致了高延迟。对目前主流的SATA SSD来说,想避免这个延迟就是走另一条路,通过专门的SATA HBA直接与CPU连接。但这个方案缺点也很明显,第一是要增加额外成本买扩展卡;第二是这些扩展卡良莠不齐,买到“雷”货就是赔了夫人又折兵;第三是需要有一定动手能力,高端HBA可能需要自己手动配置为I/T固件,以最简化逻辑;第四是主流平台PCIe插槽稀少,为了提升磁盘性能,所以要跟显卡抢带宽,值不值得有待商榷。还有一点,如果不知道PCIe是从哪儿来的,买了一张好卡,结果插到南桥给的PCIe线路上,那延迟就是1+1>2了。这也是为什么主板集成的第三方SATA接口速度和延迟都不如原生的原因之一。

既然CPU里没有SATA控制器,只有PCIe,那么何不直接用PCIe SSD。这也是新一代SSD的发展方向,不论是AIC(Add-In-Card)插卡形式、NGFF M.2还是SATAe,都在利用PCIe通道。而且我们可以一定程度上自主选择这个路径是走PCH绕一圈,还是直连CPU。但就像上面提到的,主流平台直连CPU的PCIe通道就那么几条,而且只有原生PCIe SSD,而非再次转接并RAID的SSD(比如ORZ RevoDriver系列),才能具备低延迟的优势。目前原生PCIe SSD只有浦科特M6E和三丧的XP941(仅限消费级,企业级有很多)。

那么同样一块盘,在同样一套平台上,就因为走的路径不同,差距能有多大?可以看RK评测华擎Z97 EX6的帖子,定位主流市场的全能型主板 华擎Z97 Extreme6评测。直接看图说话,测试对象是目前最强消费级SSD,三丧XP 941,在系列第二回有过简介。

这是插在由CPU过来的M.2 x4接口上

这是插在由Z97 PCH过来的M.2 x2接口上

除了持续读写主要受接口带宽影响以外,其他6项都受延迟影响,体现出很显著的差异。仅仅是换了个接口,就使得4K相差10%以上。

话说回来,AS SSD和CDM这种娱乐跑分软件,本身就不科学。如果只是用来检测驱动和分区是否正确还可以,真拿篮框里的几百几千分当回事,那真是图样了。关于AS SSD的总分是如何不科学,见仙仙的从数学角度谈谈为什么AS SSD Benchmark跑分无意义

我个人认为,一块SSD的随机4K读写取超过10MB/s就是合格的,超过20MB/s就不会有实际体验差别。盲目追求4K,还不如找个持续读写高的。


关于3D NAND

3D NAND应该是最近唯一值得成为SSD业界焦点的对象了,这是值得来个专题好好说一下的,显然这里盛不下它。

简单评价一下这项技术就是,颠覆传统,前途光明。

颠覆传统是,3D NAND的结构与传统2D完全不同,而且对其信号处理也完全不同于传统2D结构。三丧又一次用“老”主控安上了“新”东西,他们确实又NB了一回。而且从各家评测来看,性能确实霸道,就是可惜插在SATA上面了。不过后续产品也会很快跟进的,喜欢SSD飙分的肯定不会错过。

前途光明是,各大厂也都在研发各自的3D技术,当然不只三丧用的这一种,还有其他的3D形式。目前的3D技术可以做到用更老的光刻制程实现跟最新2D 16nm工艺同样的存储密度,这也就意味着同等容量下,3D NAND具有更高的性能而且更耐擦写。随着layer-层数的增加,以及制程进步,3D NAND的容量还能大幅提升。当然摆在工艺上的难度也是一样的,但对于已近末路的NAND来说,新技术的应用不仅是延长NAND的生命周期,也同样是为下代NVM积累经验。



最后……

真遗憾,曾经写的帖子提到的存储陋习,结果咱们论坛就中了,话说一个以存储见长的论坛死在存储上真是喜闻乐见了。不过还好我自己的帖子在事发前都完整备份过了,所以我只是重新整理,稍微修改了一下就补全了。这里也再次提醒大家关注自己的数据安全,没有任何单一方式是完全可靠的,重要数据一定多种形式多份保存。除非你想验证我的签名

本帖子中包含更多资源

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

x

评分

参与人数 2活跃度 +10 收起 理由
爱若晨风 + 5 很给力!
frankfree + 5 很给力!

查看全部评分

2#
忘世 发表于 2014-8-9 10:57 发自PCEVA移动客户端 | 只看该作者
好文章,需要好好阅读学习
3#
einstein86 发表于 2014-8-9 19:41 | 只看该作者
不明觉厉
4#
iFive 发表于 2014-8-9 22:16 发自PCEVA移动客户端 | 只看该作者
前排顶贴。
PS:tob你不是三丧黑吗?
5#
nighttob  楼主| 发表于 2014-8-9 22:19 | 只看该作者
iFive 发表于 2014-8-9 22:16
前排顶贴。
PS:tob你不是三丧黑吗?

一直是,怎么了?
6#
iFive 发表于 2014-8-9 22:28 发自PCEVA移动客户端 | 只看该作者
nighttob 发表于 2014-8-9 22:19
一直是,怎么了?

很少看见你对三丧的正面评价……
我也是三丧黑。。
顺便问一句,3D NAND的3D结构会影响寿命吗(同制程下)?我个人认为会影响。
7#
nighttob  楼主| 发表于 2014-8-9 22:40 | 只看该作者
iFive 发表于 2014-8-9 22:28
很少看见你对三丧的正面评价……
我也是三丧黑。。
顺便问一句,3D NAND的3D结构会影响寿命吗(同制程下 ...

正因为掌握核心技术所以才有的可黑。
随便找个公版就贴牌的,连被黑的资格都没有。

应该说3D NAND的寿命定义跟传统2D结构的已经不一样了。三丧自己说在限速的情况下可以做到30K PE,不限制的话目前最差也比目前20nm MLC的要强的多。如果制程升到20nm,估计最好情况也就是跟现在的一样,毕竟单元内每一层结构都变薄了,虽然用了新材料来弥补。
不过,新技术嘛,总要有一个被人接受的阶段。就算是Intel现在出个3D NAND的盘,我也不会买。
8#
batzxcboy 发表于 2014-8-10 00:28 | 只看该作者
3D NAND 值得补坑
9#
bionix 发表于 2014-8-10 08:07 | 只看该作者
学习了~看来SF主控还是不如马牌给力
10#
shangzy 发表于 2014-8-10 08:37 | 只看该作者
我水平低,只能说:学习了,长见识。对4K读有了理性的认识了。
11#
iFive 发表于 2014-8-10 09:25 发自PCEVA移动客户端 | 只看该作者
bionix 发表于 2014-8-10 08:07
学习了~看来SF主控还是不如马牌给力

错了。马牌跑分厉害,但是。。
我已经不想黑了
12#
起航 发表于 2014-8-10 12:07 | 只看该作者
好文章 学习了
13#
woyaoxiayi 发表于 2014-8-10 12:20 | 只看该作者
学习了
14#
小象的爸爸 发表于 2014-8-10 20:50 | 只看该作者
学习了,楼下保持队形。
15#
fosullx 发表于 2014-8-10 22:59 | 只看该作者
学习了
16#
keysis 发表于 2014-8-11 08:12 | 只看该作者
支持,很好的东西啊,赞一个
17#
固特异轮胎 发表于 2014-8-11 11:15 | 只看该作者
刚买了个sf的ssd
18#
ym221479 发表于 2014-8-11 22:22 | 只看该作者
学习了~~~

赶快去备份自己的数据去~~~
19#
onlyu 发表于 2014-8-11 22:47 | 只看该作者
一个以存储见长的论坛死在存储上真是喜闻乐见了。


噗。。。233333
20#
板砖财 发表于 2014-8-12 08:44 | 只看该作者
这个帖子好像是全新的内容呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部