企业和消费级SSD Firmware(固件)的区别

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

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

 
 

这篇文章讲了OCZ的企业级和消费级SSD Firmware设计关键不同点。

基础知识

几点区别:

  1. 接口。消费级基本都用SATA,而企业级使用PCIeNVMeSAS
  2. 侧重点。
  3. 消费级:成本>容量>性能>数据完整性
  4. 企业级:数据完整性>性能>容量>成本
  5. 企业级容许更多的冗余数据。可以用来备份和容灾。
  6. 企业级需要持久稳定的性能,更长的寿命,额外的空间,能够与具体应用相适应。
  7. 消费级一般只有12SSD组装,企业级需要把几个SSD组装在一起。
  8. JEDEC组织对数据稳定性的要求,在不通电的情况下:
  • JESD 218A规定企业级硬盘数据要在55摄氏度下每天保持24小时,40摄氏度保持3个月;
  • 消费级在40摄氏度每天保持8小时,30摄氏度下保持一年。

9. 企业级重视持续大量读写时数据的稳定性,因为这种时候容易发生系统故障,内存故障和Flash Page损坏。

10. 企业级数据的不同类型:

  • WORM型:写少读得多(write once read many
  • 不稳定的数据:例如Swap数据。
  • 备份数据。

Swap的用法:Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

计算机用户会经常遇这种现象。例如,在使用Windows系统时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘哗哗直响。这是因为这个程序的内存被那些频繁运行的程序给偷走了,放到了Swap区中。因此,一旦此程序被放置到前端,它就会从Swap区取回自己的数据,将其放进内存,然后接着运行。

SSD内各种数据保护技术

端到端数据保护

如下图,OSHBA和存储阵列到NAND都要做有效性检查,因为操作系统驱动问题,SSD控制器软硬件故障都会导致数据出错。


数据纠错

随着NAND工艺越来越微小,氧化层也越来越薄,数据翻转的可能性增大。如下图,工艺越先进,纠错码要求越来越强,寿命(P/E次数)不断缩短。



Flash制造商在Flash Page里面会留有一定Spare Area来存放纠错码,工艺尺寸越小,Spare Area越大。

25nm MLC450Byte Spare Area,每1K能纠错24 bit

20nm MLC750Byte Spare Area,每1K能纠错40 bit


消费级使用BCH编码来纠错。

企业级开始使用LDPC编码:

  1. 软信息编码;
  2. 能够延长使用寿命,保存更长时间数据。
  3. 用户数据与校验数据比例会不同以往;
  4. 与信噪比和UBER有关,并不是简单的固定bit数纠错。

    RAID

    如下图,HDD使用RAID 5来保护磁盘阵列数据,每个磁盘都分布有校验数据。


    SSD也可以类似操作。RAID的作用是基于NAND的特殊属性,NAND中某个PageWord Line)有可能会全部丢失,这样ECC数据也没了,只能通过别的Die上校验数据恢复。

    下图中校验数据分散到了每个Die的不同block中,分析一下OCZ的这种方案:

    为了保证大家的磨损程度一致,Block A系列都要同时写入,但是校验数据肯定最后写,所以ABCDDie写的次序是不一样的。从写的角度来看,校验数据分散到不同die的意义不大,但是从读的角度来讲,可以把读均匀分到不同Die上,可以增加读的带宽,因为4Die都有可能读。


    企业级FTL

    普通消费级SATA FTL架构如下图,Host命令由HIL执行,NAND命令由FIL执行。FTL的作用是把Host地址映射到NAND物理地址(使用映射表Map Table),同时还要做坏块管理BBM和损耗平衡(WLWear Leveling)。


    企业级SSD要求更短的读写延迟,但是更新SSD控制器DRAM内部的Map Table需要时间,如果一个page的地址位4Byte,那么256GB 16KB Page需要Map Table大小:

    (256G / 16K ) *4B = 64MB

    8K Page需要

    (256G / 8K ) *4B = 128MB

    为了防止掉电导致Map Table丢失,需要定期吧Map Table写入NAND,这个会造成延迟。OCZ设计了一种新的分成很多段的Map Table,段之间像链表一样,每次只要写一段到NAND就可以了。


    企业级其他因素:

  • 更大的空余空间(Over provisioning),用来提高垃圾数据很多时的性能。因为每次写都会导致旧的数据作废,为了写新的数据,就得搬移有效数据,删除作废数据,腾出空间写新的。如果空余空间大,腾出空间的速度就会加快。
  • 需要大电容或者电池来防止异常掉电。
  • 现场Debug功能,产生更多不影响性能的内部日志,同时能够被host访问到,用于内部诊断和分析。

引用

1. Differences Between Consumer and Enterprise Flash Architectures

Robert Sykes, Director of Firmware, OCZ Technology

2. http://bbs.pinggu.org/thread-460622-1-1.html

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

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