PCIe SSD背后的史诗3

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 石璟鑫

 

被AHCI拖后腿的原生PCIe SSD

 

早在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将这个Upper Page写完,使得之前写的Lower Page数据不受影响。另外,映射表是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协议。咱们下期介绍~

分类目录 SSD.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。