入行SSD小白的认知之路(一)

对于刚入行SSD产业的小白来说,一路坎坷迷茫过来,非常想将网络上前辈们零散的讲解,再做个适合自己理解的收集整理归纳,同时也方便能为后来者参考,共同进步。

SSD: 固态硬盘 (Solid State Drive) 的缩写。SSD是一种可将数据读写到闪存芯片上的存储设备,其存储介质称为NAND闪存。与HDD相比,SSD具有包括更快的处理速度和更低的功耗在内的诸多优势。SSD通常有闪存+控制器IC+缓存(可省)组成。

Nand闪存:有两种类型的闪存,NOR和NAND,NAND用于高容量数据存储。

控制器IC:一种具有控制闪存读写和纠错等功能的IC。

闪存,须从Wafter(晶圆)讲起。沙子经过高温提炼做成高纯度硅晶体柱,再切割成圆形薄片,称为晶圆,再经过激光精密蚀刻等无数道工序,在其上形成无数个具有特殊功能的晶粒(Die)。

Die 就是芯片未封装前的晶粒,每一个Die就是一个独立的功能芯片,它无数个晶体管电路组成,但最终将被作为一个单位而被封装起来,便成为我们常见的闪存颗粒了。

什么是ink Die

在晶圆制造过程中,会对Wafer中的每个Die进行严格测试,通过测试的Die,就是Good Die,未通过测试的即为Ink Die。这个测试过程完成后,会出一张Mapping图,在Mapping里面会用颜色标记出不良的Die,故称Ink Die。

由闪存原厂亲自对Wafer完成检测和封装的Good Die叫原片,Ink Die叫黑片。若由大的第三方检测封装厂将激光蚀刻好的晶圆(Wafer)买回去,自己来检测和封装的,叫白片

Die和颗粒的关系

白片和原片都是封装后的闪存颗粒,不同在于只有原片是闪存制造商亲自完成筛选和品质认证。由于NAND Flash单颗Die的容量有限,为了实现更高的容量,需要在一个封装片内堆叠几个Die。在Wire Bond的时候,用金线互连。通过叠Die((Stack Die)可以在一个闪存颗粒中封装1~16个不等的Die,封装的Die数量越多,闪存颗粒容量越大。

Flash芯片封装技术分类

目前NAND Flash常见的封装方式多采取TSOP、FBGA等方式,TSOP封装只需要一个引脚框架,把NAND FLASH Die的Pad打线(Wire Bond)连接到引进框架上面即可。封装技术简单,成本低。但其打线方式只能从两边打线,因此stack die就比较困难。

BGA封装与TSOP封装不同在于其采用了Substrate,用电路板来对引脚走线,因此可以进行四面打线,这样在进行叠die的时候,就变得更加容易操作。但成本会比TSOP要高。


NAND Flash工艺分类

若按工艺分类,可分为SLC,MLC,TLC,QLC。
SLC英文全称(Single Level Cell),每个Cell单元存储1bit信息,也就是只有0、1两种电压变化,结构简单,电压控制也快速,反映出来的特点就是寿命长,性能强,P/E寿命在1万到10万次之间,但缺点就是容量低而成本高,毕竟一个Cell单元只能存储1bit信息。

MLC英文全称(Multi Level Cell),每个cell单元存储2bit信息,需要更复杂的电压控制,有00,01,10,11四种变化,这也意味着写入性能、可靠性能降低了。其P/E寿命根据不同制程在3000-5000次不等

TLC英文全称(Triple Level Cell),每个cell单元存储3bit信息,电压从000到001有8种变化,容量比MLC再次增加1/3,成本更低,但是架构更复杂,P/E编程时间长,写入速度慢,P/E寿命也降至1000-3000次,部分情况会更低。寿命短只是相对而言的,通常来讲,经过重度测试的TLC颗粒正常使用5年以上是没有问题的。TLC又有2D-TLC与3D-TLC两种,那如何理解2D NAND和3D NAND之间的区别和联系呢?2D NAND就如何在一块有限的平面上建立数间平房,这些平房整齐排列,但随着需求量的不断增加,平房的数量不断井喷,可最终这块面积有限的平面只能容量一定数量的平房,而无法继续增加。

3D NAND则如何在同一块平面上盖起的楼房,在同样的平面中,楼房的容积率却远远高于平房,因而它能提供更多的空间,也就是提供了更大的存储空间,而32层,48层及64层则是这些楼房的高度,一共堆叠了多少层。目前市面上以3D-TLC居多。3D-TLC又再细分为32层3D-TLC、64层3D-TLC、96层3D-TLC以及最新的128层3D-TLC。

QLC英文全称(Quad Level Cell),或者可以叫4bit MLC,电压有16种变化,但是容量能增加33%,就是写入性能、P/E寿命与TLC相比会进一步降低。具体的性能测试上,美光有做过实验。读取速度方面,SATA接口中的二者都可以达到540MB/S,QLC表现差在写入速度上,因为其P/E编程时间就比MLC、TLC更长,速度更慢,连续写入速度从520MB/s降至360MB/s,随机性能更是从9500 IOPS降至5000 IOPS,损失将近一半。

这四类闪存颗粒中,SLC的性能最优,价格也是最高,一般用作对于可靠性、稳定性和耐用性有极高要求的工业控制、航天军工、通信设备等企业级客户;MLC性能够用,稳定性比较好,价格适中,为工业级和车规级SSD应用主流;TLC是目前消费级SSD的主流,价格便宜,但可以通过高性能主控、主控算法来弥补、提高TLC闪存的性能;QLC是奔着更大容量和更低成本来的,相信未来QLC闪存颗粒会使得固态硬盘进入大容量廉价时代。

Flash固有坏块

由于制造工艺的原因,通常普通的NAND FLASH从出厂开始就有坏块了,一般在2‰以下。一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值,所以这些固有坏块也叫原厂坏块。
NAND Flash的存储单元也是有使用寿命的。NAND Flash的存储原理是,在写入(Program)的时候利用F-N隧道效应(Tunnel Injection隧道注入)的方法使浮栅充电,即注入电荷;在擦除(Erase)的时候也是是利用F-N隧道效应(Tunnel Release隧道释放)将浮栅上的电荷释放。隧道注入和隧道释放的产生都需要20V左右瞬间高电压条件,这对浮栅上下的氧化层会造成一定损伤,因此这样重复的操作(P/E Cycle)是有限的。SLC大概是100K次,MLC大概是10K次。

SSD硬盘的寿命

如果每天对SSD写入4.8GB的数据,假设SSD总容量为16GB,那么,你至少需要3.34天才能对整个SSD的每个单元擦写一次;如果此SSD为擦写次数为100K的SLC单元,那么,你至少需要3.34×100K天才能使这个SSD完全失效;3.34×100K天=913年,因此16G的SSD可以使用913年。那么,如果是MLC的话,也至少可以使用91.3年。


SSD硬盘性能指标:

顺序读写Seq:顺序读写是我们日常使用电脑做一下数据的拷贝,转移时常见的操作,这是读写的过程都是有规律的序列。所以一般SSD的顺序读取速度都是不会太慢的。

4K随机读写(4K):4K随机读写一般是指在系统级别的操作,比如系统开关机,调用软件运行等操作时的读写速度,因为这些操作调用的数据都是无规律的小数据,而4KB是目前系统内不受压缩的最小数据块规模,所以才将4K读写作为一个测试的指标。4K的读写速度越快,说明系统的运行越流畅,反过来也说明SSD的性能越强。

访问延迟(Acc.time):一般指系统调用硬盘数据时需要的时间,一般的SSD的访问延迟都是低于1ms的,速度是传统机械硬盘的一千倍左右。这也是SSD做系统盘之后我们都可以感受的提升巨大的原因,越高端的SSD的访问延迟越低。

IOPS:是指单位时间内系统能处理的I/O请求数量,一般都是以每秒的I/O请求处理量为基准,IOPS数值越高,说明系统处理速度越快,SSD的性能也越强。


总线与协议

总线就是数据拿到CPU中要走的路线。有两条路,一条叫SATA,最快也只有550M/S的传输速度。另一条叫PCI-e,通常能达到3000M/S。其差异巨大在于两条路行驶规则不同,SATA使用AHCI协议,最多只能同时处理1个队列32个指令,而PCI-e使用NVME协议,能同时处理65000个队列65000个指令。
也可以这么理解,SATA是单行道(AHCI协议),即使数据都到了,但路窄,通行缓慢,而PCI-e是多行道(NVME协议),同样多的数据,人家走的就快,这就是总线和总线协议的简单比方。关于有协议和无协议,在说明一下,PCI-E x4好比一条平坦的告诉公路,而现实中的高速公路上每辆车车速是不同的,跑车总会比轿车跑的快。有用NVMe协议的SSD就相当于专门针对这条平坦告诉公司而设计的超级跑车,同样走PCI-E x4的车道,不支持NVMe协议的SSD,最大只能跑1500M/S,而支持NVMe协议的SSD就可以跑到3000M/S甚至以上。


PCI-E总线又有几个等级,PIC-E x1,PIC-E x2,PIC-E x4,PIC-E x4,PIC-E x8,PIC-E x16,数字越大,速度就越快。目前都是用x2,x3这个等级。

常见接口类型


为了实现更快的速度,更多的使用环境,更好的体验,SSD的接口也在不断进化革新,像主流SSD就有SATA接口,M.2接口,PCIe接口和mSATA接口。其各有何不同,有适合何种平台使用呢?
1- 作为目前应用最多的硬盘接口,SATA3.0接口最大优势是成熟。普通2.5英寸SSD及HDD硬盘都采用这种接口,理论传输带宽6Gbps,虽然比起新接口的10Gbps及32Gbps带宽有一定的差距,但相对于100MB/s左右读写速度HDD机械硬盘来说,普通2.5SSD可以满足大多数用户日常需求,其500MB/s的读写速度也够用。
2- 在传统SATA硬盘中,当进行数据操作时,数据会先从硬盘读取到内存,再将数据提取至CPU内部进行计算,计算后再反馈给内存,最后写入硬盘中。而PCIe接口则不同,数据直接通过总线与CPU直连,省去了内存调用硬盘的过程,传输效率与速度都成本提升。打个比方,PCIe像汽车在高速上行驶,而SATA像汽车在崎岖山路上行驶。因PICe SSD闪存颗粒和主控的品质极高,其总体成本也相对较高,售价比传统SATA SSD贵一些。
3- M.2接口,有M Key和B Key两种接口。B KEY接口插在B KEY插槽中,金手指5针在左边,为老式M.2插槽,又称“SOCKET 2",用在老式主板和笔记本上,支持:PCI-E x2总线,和SATA总线上,速度上线为1000M/S。M KEY接口插在M KEY插槽中,金手指4针在右边,为新式M.2插槽,又称"SOCKET 3",用在近几年的新主板上,支持:PCI-E x4总线,与CPU直连,速度可达1500M/S以上,如果支持NVMe协议,速度轻松达到2000M/S以上。B KEY和M KEY可以同时用成为B&M型接口,对SSD兼容性好,两种M.2插槽都能用,但是速度稍慢,虽大也就是1000M/S.
可见,M.2接口可以同时支持SATA及PCIe通道,后者更容易提高带宽,如果是采用SATA通道的M.2接口SSD,则读写速度在550MB/S左右。虽然M.2 SSD在性能上与SATA SSD没有太大优势,在其纤薄五外壳设计,且价格也跟SATA SSD差不多,特别适合用在超薄类笔记本/MINI/HTPC主机里。那同是M.2接口,为何会有PCIe和SATA之分?在于两者所走的通道不同,M.2有两种接口定义:Socket2和Socket3。Socket2支持SATA,PCI-Ex2通道的SSD,而Socket3专为高性能存储设计,支持PCI-Ex4。至于M.2接口支持哪种通道的SSD,这是由SSD的主控决定的。走不同通道,速度自然有差异,SATA3.0通道理论带宽是6Gb/s。理论极限传输速度600MB/s,若主板M.2接口走PCIe通道,其传输带宽为10Gb/s,其连续读写可达1500MB/s和1000MB/s,完全超过了SATA3.0极限传输速度。
4- 早期为适应超极本这里超薄设备的使用环境,针对便携设备开发的mSATA接口产生,可看作标准SATA接口的mini版,物理接口跟mini PCIe接口一样。mSATA接口是SSD小型化的一个重要过程,不过mSATA依然没有摆脱SATA接口,依然是SATA通道,速度是6Gbps,但诸多原因,其被M.2 SSD取代。
所以,四种接口类型,见证了高性能存储SSD的发展历程。

关于NAND组成结构

当前,3D TLC NAND技术已成为行业主流,其凭借颗粒立体式堆叠方式,突破了因晶圆物理极限而无法进一步扩大单Die可用容量的限制,从而实现了在相同大小的体积内存储颗粒总体容量的飙升。同时,NVMe协议的普及应用,为PCI-e SSD的性能提升再次带来飞跃,主要体现在低延时,可拓展性,安全性等方面。

一方面NVMe设备和CPU直连,协议开销大幅减小,另一方面可以最大化利用CPU Lane资源,例如显卡使用 x16个Lane,网卡一般用 x4或者 x8个Lane,而PCIe SSD可以启用更多Lane资源,单个Lane的理论带宽可达1GB/s,支持Lane越多,性能越高。所以若设备支持 x16 Lane,总带宽将达16 GB/s
说起多Plane概念,须从Die讲起。Die(晶粒)就是以半导体材料制作成未经封装的一小块集成电路,通常情況下,集成电路是以大批方式,经过光刻等多項步驟,制作在大片的半导体晶圆(wafer)上,然后再分割成方形小片,这一小片就称为Die。



在NAND结构中,自下而上的组成元素为Cell(存储单元)、Page(页)、B lock(块)、Die(晶粒,也称LUN)、Target、存储颗粒。如下NAND结构图,4个“Plane”集成为一个Die,并可以对4个“Plane”同时做并发工作,这一技术称为多Plane操作。在物理上多个Die会被封装成一个Target,共享一套控制信号线 。

而不同的NAND厂商提供的“Die”封装所有不同,如单Die封装(SDP,Single Die per Package)、 两个Die的封装(Double Die per Package)、4 Die封装(QDP,Quad Die per Package)和8 Die封装(ODP,Octal Die per Package)


多Plane操作为什么会提升SSD性能?多Plane操作通过指令对4个“Plane”同时进行并发工作(读、写、擦),来平衡“垃圾回收”和前端写入,从而确保SSD读写性能。“垃圾回收”通俗来讲,就是将存放在“Page”中的数据进行擦除,从而写入新的数据。但这些指令必须满足以下条件,方能事半功倍。

 - 访问相同的Die地址

- 同一个Die中访问不同的Plane地址

- 每个Plane中访问的Page地址必须一致

 如下示意图,即可看出多Plane写和单Plane写的不同。如果SSD接收到64K的用户写请求,NAND Page大小为16K,单Plane写操作分别将切分的用户数据块(16K)写入不同Die中的Page;如果64K的写入符合多Plane写操作的条件,会同时写入同一个Die,不同Plane的Page中。这样一来,多Plane写操作充分发挥并发写能力,进而提升数据写入的速率。



而NAND的组成结构的细分,会体现在主控FW对NAND操控上,例如下图所示,是合肥沛睿(RealTek子公司)SSD方案主控RM1135 MPTOOL的UI界面:

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论