找回密码
 注册
关于网站域名变更的通知
查看: 601|回复: 1
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-4-4 14:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

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

    ) J6 q6 C3 j* v5 y  y2 H5 Z- l: S3 H7 \% E
    这篇文章讲了OCZ的企业级和消费级SSD Firmware设计关键不同点。
    , K$ s5 Q  {4 y8 O, s- N
    基础知识
    ' m7 X3 P6 f, ^' ~+ i1 W
    几点区别:
    • 接口。消费级基本都用SATA,而企业级使用PCIe、NVMe、SAS。
    • 侧重点。
    • 消费级:成本>容量>性能>数据完整性
    • 企业级:数据完整性>性能>容量>成本   
    • 企业级容许更多的冗余数据。可以用来备份和容灾。
    • 企业级需要持久稳定的性能,更长的寿命,额外的空间,能够与具体应用相适应。
    • 消费级一般只有1到2个SSD组装,企业级需要把几个SSD组装在一起。
    • JEDEC组织对数据稳定性的要求,在不通电的情况下:5 w: d& n* w- h0 \6 w5 a2 ]+ ^
    • JESD 218A规定企业级硬盘数据要在55摄氏度下每天保持24小时,40摄氏度保持3个月;
    • 消费级在40摄氏度每天保持8小时,30摄氏度下保持一年。
      9 a0 n2 t$ Z. T
    9.企业级重视持续大量读写时数据的稳定性,因为这种时候容易发生系统故障,内存故障和FlashPage损坏。
    ; A9 z+ P: t8 h% ]5 \, ?7 {4 D

    - f0 [( Q7 z0 Q$ U0 Y
    10. 企业级数据的不同类型:
    • WORM型:写少读得多(write once readmany)
    • 不稳定的数据:例如Swap数据。
    • 备份数据。
      9 X* \+ M. _, ?! y# T9 P: [- [
    Swap的用法:Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

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

    2 P4 e  p( y, h, O: p
    SSD内各种数据保护技术
    - P3 p0 Z: G+ C+ `5 c
    端到端数据保护

    9 `4 l6 J, I, T. i( h: q8 ?. N: S
    如下图,OS到HBA和存储阵列到NAND都要做有效性检查,因为操作系统驱动问题,SSD控制器软硬件故障都会导致数据出错。
    数据纠错
    ; C0 K/ x5 U6 [2 H

    - N3 w9 P3 y3 C( {
    随着NAND工艺越来越微小,氧化层也越来越薄,数据翻转的可能性增大。如下图,工艺越先进,纠错码要求越来越强,寿命(P/E次数)不断缩短。
    Flash制造商在Flash Page里面会留有一定Spare Area来存放纠错码,工艺尺寸越小,Spare Area越大。
    25nmMLC有450Byte SpareArea,每1K能纠错24 bit;

    # ^) J" ]2 y% O. N* K3 L
    20nmMLC有750Byte SpareArea,每1K能纠错40 bit。
    消费级使用BCH编码来纠错。
    企业级开始使用LDPC编码:

    ( Q/ p; s( W8 A. W0 [
    • 软信息编码;
    • 能够延长使用寿命,保存更长时间数据。
    • 用户数据与校验数据比例会不同以往;
    • 与信噪比和UBER有关,并不是简单的固定bit数纠错。% K/ U3 P& I, _8 \

      $ k% J$ q/ K3 Y. N( {: \1 R8 h' O
      RAID

      6 [9 T! K; G0 f8 U
      如下图,HDD使用RAID 5来保护磁盘阵列数据,每个磁盘都分布有校验数据。

      . B& W: H, `. L

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

    " O( _$ T" T: v$ \3 X# v! A
    下图中校验数据分散到了每个Die的不同block中,分析一下OCZ的这种方案:

    1 o* h) E. r2 [. R4 o! z
    为了保证大家的磨损程度一致,Block A系列都要同时写入,但是校验数据肯定最后写,所以ABCD内Die写的次序是不一样的。从写的角度来看,校验数据分散到不同die的意义不大,但是从读的角度来讲,可以把读均匀分到不同Die上,可以增加读的带宽,因为4个Die都有可能读。
    企业级FTL
    6 R  g% k" Z* z4 {2 K7 c9 z9 c
    ) _/ E  v9 L, J: T/ r
    普通消费级SATA FTL架构如下图,Host命令由HIL执行,NAND命令由FIL执行。FTL的作用是把Host地址映射到NAND物理地址(使用映射表Map Table),同时还要做坏块管理BBM和损耗平衡(WL:Wear Leveling)。
    企业级SSD要求更短的读写延迟,但是更新SSD控制器DRAM内部的Map Table需要时间,如果一个page的地址位4Byte,那么256GB 16KB Page需要Map Table大小:
    (256G / 16K ) *4B =64MB

    + @! f: K6 ^( X9 e
    8K Page需要
    (256G / 8K ) *4B =128MB

    # K8 O# Q1 c1 B" l8 G, {7 s
    7 |. b3 H2 `# H# L
    为了防止掉电导致Map Table丢失,需要定期吧Map Table写入NAND,这个会造成延迟。OCZ设计了一种新的分成很多段的Map Table,段之间像链表一样,每次只要写一段到NAND就可以了。
    • 企业级其他因素:
      & }7 v2 z! K: r
    6 }4 b% Q0 V5 m& ]' Q6 J0 _
    • 更大的空余空间(Overprovisioning),用来提高垃圾数据很多时的性能。因为每次写都会导致旧的数据作废,为了写新的数据,就得搬移有效数据,删除作废数据,腾出空间写新的。如果空余空间大,腾出空间的速度就会加快。
    • 需要大电容或者电池来防止异常掉电。
    • 现场Debug功能,产生更多不影响性能的内部日志,同时能够被host访问到,用于内部诊断和分析。
      4 ~8 }7 x' Y% t0 O5 m6 j0 V. D% I
    # f3 U7 n# e. c4 b* ?1 }1 H

    该用户从未签到

    2#
    发表于 2019-4-4 16:32 | 只看该作者
    发帖是心得 回帖是美德
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-29 11:50 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表