关于SSD元数据及掉电保护的误解

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

 

作者简介

 
 

冬瓜哥,《大话存储》系列图书作者,现任Microsemi存储系统架构师

 
 

想要和冬瓜哥还有全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群

 

       此文是对ssdfans群聊的一个小总结,也解决了冬瓜哥的一些困惑,所以感觉非常有必要做个总结,让大家更深一步了解SSD在元数据管理层面上的运作机制。在此感谢ssdfasn群提供了一个相互交流闪存技术的平台,感谢群友们的知无不言,言无不尽。

关于元数据

page里有元数据,内存里同步维护一张按逻辑页号排序的大表。

        SSD需要记录很多元数据,典型的就是逻辑页号与物理页号的映射关系。逻辑页号对应的物理页是在不断变化当中的,至于控制器将某个页面重定向写入到哪个物理页,就是FTL模块综合计算的结果了。

        一般认为,这种映射关系无非就是一张大表,保存在SSD控制板上的SDRAM中,大概会有Flash裸容量的千分之一大小。如果裸容量4TB,那么这张表就大概有4GB这么大。

        由于每一笔IO,主控都需要查表来寻址物理页号,该表以逻辑页号排序,可以做到一次定位。但是SSD板载DRAM容量太小,所以总有大部分表是放在Flash里某固定位置上的,比如可以放到SLC介质区,以保证查表时的性能。

        对于写IO,逻辑页对应的物理页会变化。主控要将这个变化记录下来。一般理解,对应物理页号如果此时恰好在DRAM中,那么主控直接改DRAM即可,假设DRAM中如果有500MB的物理页号变更导致的脏数据,此时一旦系统掉电,主控需要将这500MB的脏数据刷盘,而一般SSD采用的电容量不足以支撑这么多数据的写入。

        实际上,主控是这么干的:将对应页面的逻辑页号存储到该page中的固定位置,随着page的有效数据一起写入。目前page有效容量在8K/16K粒度,一个Page的物理容量其实是有效容量+校验+元数据(逻辑页号等)。每个页面都保存有自己所属的逻辑页号。同时,主控在DRAM中还维护了那张按照逻辑页号排序的大表。这样,就算掉电,DRAM里数据全部丢失,那么主控也还可以读出所有page,根据其中保存的逻辑页号,将这张大表重新构建起来。这就是为什么有些早期的SSD在系统突然掉电之后,必须等待较长的时间才可用的原因。

Block里也有元数据。

        比如,用于记录该Block的高水位线,也就是最后一个被Programpage的偏移量。

如果能够记录每个LBA所在的页内偏移量,小块写写性能将非常好。

        由于NAND FlashIO单位是一个Page,如果前端接收到的写IO size小于一个Page,比如,IO size=0.5K,这是SCSI/ATA时代的遗留标准(最小IO单位是一个扇区),那么主控也要读出一个page,盖掉其中的对应的0.5K, 然后后台再将该page写下去。如果有大量的随机0.5K的写IO,那么主控则无法将其合并到一个page中一次性写入,因为一个page内所保存的LBA在局部必须是连续的,因为主控只维护逻辑页号和物理页号的对应,并没有维护逻辑页内部LBA的位置,这样可以节省大量的元数据,代价就是写惩罚。

        如果想做到对大范围全随机的小块写IO进行拼接然后写入一个page,那就得记录LBA粒度的映射,这样表会很大,page里也要保存对应数量的LBA地址,假设每个LBA48bit的话,16Kpage就得保存32 x 48bit的元数据量。

 

 


 

转载自冬瓜哥公众号大话存储

 


 

公司招聘:
Memblaze
华东区高薪招聘
,销售经理,FAE  上海/杭州
联想SSD专家招聘FWQANAND特性工程师,北京/武汉

ssdfans帮你内推

ssdfans帮你赚推荐费

 

欢迎转载,转载请保留二维码!


 

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

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