黑片管理在FTL中的应用

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

作者:菜鸟

SSD和U盘的区别

图 1 SSD和U盘结构示意图

两者之间的区别,除了接口协议不一样,其他的惊人的相似,协议不一样,速度不一样。可以通过Nand Flash的Datasheet估算一下速度Nand Flash的速度。

 

图 2 三星K9ADGD8x0D Datasheet Feature

USB2.0理论速度480Mbps,SATA3.0理论速度6Gbps。按照上述Flash Datasheet大致估算一下,一页随机读取Busy时间最大,数据传输最大400MBps(datasheet中此参数的bps中b为一条数据线上的数据,Flash有8条数据线,一个Cycle传输一个Byte,所以实际上是400MBps),对于读一页数据的时间集中在Busy时间,可以说Busy时间就是读取一页数据的时间(忽略掉发送命令和真实数据传输的时间)。这样就可以估计Flash的理论最慢速度

计算出的x即使Flash的理论最低速度 ,此速度表示是正常读的速度,不包括特殊读操作方式,比如two plane read,cache read等

对于USB2.0来说,足够满足其速度要求(480Mbps=60MBps),所以现在所见的U盘,基本上一个通道就可以搞定,大容量U盘会贴多片Flash,但是通道只有一个,多片Flash共用数据线,地址线,命令线,通过片选选择不同Flash

图 3 U盘单通道示意图

对于SATA3.0协议,Flash的速度不能满足需求,加上各种加速操作也不能满足,所以需要增加通道来并发传输才可以,如果两个通道,Flash理论并发的速度是2x,即260MBps,在实际操作情况下Flash的Busy时间为最大值的一半左右,实际并发速度大约为4x,即520MBps。

图 4 实测Flash的读取Busy时间

理论上来说,两个通道的带宽就可以满足SATA3.0的速度要求,至于容量来说,多贴Flash就可以满足需求。剩下的就是FTL如何去管理了。

所以简单来讲,SSD就是多个U盘堆起来的结果。在U盘上使用的FTL技术在SSD上照样适用。

现在U盘的扩容,以及使用黑片在SSD上也是会出现的,只是时间问题,在购买SSD时还是优先选择大品牌,质量有保障,小众品牌在考虑成本(SSD中主要成本集中在Nand Flash)的情况下会使用黑片(非常暴力)。

 

黑片和正片的区别

 

在一片wafer(每次Intel发布新制程的时候,老总手里拿着的那个圆圆的东西)中,合格的die切下来,制作成的没有任何瑕疵的Flash就是正片,论颗卖,如果有点儿瑕疵的就是白片,山寨品牌会使用,正片上面厂商的编号清晰,白片比较模糊;

图 5 Wafer

一颗圆形的wafer,不可能全部都被扣走,留下来的,所谓的不合格的部分,会被当做垃圾处理掉,但是这么多直接处理掉太浪费了,所以拿着这些垃圾进行封装成的Flash就是黑片,论斤卖。黑片中某些cell是坏掉的,不能使用,导致Flash的某些页是坏的,不能正常的读写数据。这样的Flash上没有任何厂家编号。

图 6 Wafer切割后剩下的部分

黑片的一般管理算法

 

量产阶段,量产工具会对Flash进行扫描,确定哪些页可用哪些页不可,会生成一个页模型,假设1表示可用,0表示不可用,原始结果如下图

图 7 扫描原始页模型

量产工具进行分析,按照容量来筛选,按照一定的要求分析出一个页模型,每一个块都使用相同的页模型,这个是最简单的。从上图来看,有些Block的Page0是不可用,有些Block的Page1是可用,最终的页模型有可能就是 001111111…….111其中0表示页不可用,1表示页可用。如果说当前块的不可用页过多,则会将该块作为坏块处理,这样会有一个块模型。这样就得到了两个模型,块模型和页模型,这两个模型怎么使用,主要看FTL的管理算法。下面简单按照块管理算法来说明这两个模型的使用

图 8 虚拟Flash 层示意图

因为块中有些块是标记为坏块,是不能使用的,如果直接Log2Phy映射表管理的话,FTL是需要考虑块模型,不易管理,不能做到FTL的通用性,所以需要分层,将实际的物理块中的可用块抽象出来,形成虚拟Flash层,叫做Virtual Flash,此虚拟层,在正片管理中就是实际的物理块。这样FTL算法可以做到通用,加上VF层即则可管理黑片,去掉VF层则可以管理正片。

由于页模型的加入,每个块的实际可用页数量会比真实的页数量少,因为有些页标记为不可用。VF Block 与实际物理块中页的一种对应关系如下

图 9 页模型对应关系

FTL大致的操作流程如下:如果Host写入数据,在Log0位置写入数据,刚刚量产完的SSD,Log2Phy Mapping是没有数据的,全FF标记,未写入数据,即没有任何的对应关系,操作一段时间后,Mapping表中会出现类似上述的对应关系,假设Log0对应VF层的0x100块,由于VF层也是一个Mapping对应关系,姑且称作为VF Mapping,0x100实际上是VF Mapping表的下标(VF Block Num),下标上所存的值为实际物理块号(Phy Block Num),此时为0x150,所以操作VF 0x100 块实际上是操作物理的0x150块。在写入VF Block的Page0时,对应上图的页模型,操作的是Phy Block 的Page1。从上述关系可以看到如果操作的VF 0x100块的Page0,其实真正操作的是物理块0x150的Page1。

 

SSD使用黑片的影响

 

速度:由于中间引入VF层,会增加地址转换的计算,降低速度,中间还会夹杂Load VF Mapping数据,在随机4k操作时,如果是频繁去更新表格,会比较慢,此时应该会引入临时Mapping表,GC集中更新临时表到总表里面。由于每个块使用相同的页模型,所以在上电时就知道具体的页模型,有时候为了容量的提升会采用多个页模型的情况,原始页模型比较相似的块会使用相同的页模型,这样容量提升了,但是速度降低了,鱼和熊掌不能兼得,量产时决定是容量优先还是速度优先。

寿命:由于是使用不合格的die封装的Flash,所以其pe会比正片低,假设按照TLC的5000次来算,有可能黑片的pe会是2000次(只是假设,这个受die的切割技术和封装技术而定,对该假设值有偏差)。按照每天使用200G的写入数据量来算

正片 256×5000÷(200×1.1×365) = 15年(1.1为假设的放大系数)

黑片 256×2000÷(200×1.3×365) = 5年(1.3相对放大系数,加入VF层会增加放大系数)

其实一天写入200G已经非常多了,一般情况下一天20G差不多了

图 10 实际办公电脑SSD使用情况

上图是我办公电脑,平均下来1h = 1G

质量问题:上述寿命只是按照理想情况来估计,由于黑片的die是不合格的,所以在使用页模型的情况下,没有使用的页和使用的页之间会形成干扰,以及多次操作后Flash是不稳定的,会呈现一些黑片独有的特性,如果FTL不处理好,在使用久了很容易导致数据丢失。

成本问题:正片论颗卖,黑片论斤卖,成本大大降低。128G容量的SSD,有可能用到了200G的Flash甚至更高,材料成本上去了,但是论斤卖的,可以忽略不计。

对于消费者来说,这个是一个坑,因为从SSD外观上来看,是没办法区分的。在SSD极大普及的情况下,会和U盘一样,电脑周边店,甚至路边摊都可能买得到,但是质量没法保证。现在很多人都在说SSD在使用TLC,其实按照现有的FTL算法,对TLC的管理已经很成熟了,按照上述计算,一般人换电脑的频率大概是4-5年,等SSD挂掉,电脑早就换了。这个是对TLC的一种认识误区。

 

总结

 

对厂商来说:成本大大降低,意味着利润大大的增加。

对消费者来说:购买SSD时尽量选择大品牌,SSD有价,数据无价。不久的将来,现在的U盘就是以后的SSD。

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

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