加载中…
个人资料
古猫先生-存储随笔
古猫先生-存储随笔
  • 博客等级:
  • 博客积分:0
  • 博客访问:35,691
  • 关注人气:10
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

SSD掉电保护也是一门艺术

(2017-04-21 12:03:02)
标签:

原创

掉电保护

回写缓存

电容

分类: SSD
你是否会遇到这样一种情况:
当你正在文思泉涌地敲打键盘赶稿件时,电脑突然抽风,然后,你就看到了绝望的蓝色(系统崩溃,电脑蓝屏了)。
其实office软件有自动保存的功能,当电脑重启,再次打开WORD文件时,会提醒你要不要导入最后自动保存的内容(这个方法不是100%管用)。

扯远了哈……

类似的情况,你是否想过,正在往SSD写入数据时,系统突然掉电了,那SSD的数据会怎么样呢?

总的来说,系统掉电会给SSD带来三种情况的灾难:
1. 用户写入数据丢失。我们在前面的文章提到“在Host写入数据时,并不会直接交给主控去写入NAND闪存,而是先把数据丢到DRAM缓存中,之后再传到主控内部的缓存中,最后再由主控写入NAND闪存”(详细内容请见本公众号历史文章“SSD内涵与外在俱佳—记SSD之结构与工作原理”)。我们假设Host写入的数据在放到DRAM这一步时突然掉电,由于DRAM是挥发性记忆体,只要断电,数据就会丢失。这对用户来说肯定会崩溃的,对企业级的用户更是不能容忍的。
2. FTL mapping信息丢失。SSD在完成一部分数据写入的时候需要更新闪存转换层FTL的mapping table(FTL相关详细内容请见本公众号历史文章“如何成为一个具有领导力的SSD主控?”), 如果在还未来及更新mapping table时,系统掉电,那么后果就是整块SSD对于系统不能识别。目前市场上SSD厂商都不会提供修复mapping table的工具。要想修复这块SSD就必须返厂维修,SSD厂商会通过特殊的方式对mapping table进行重建,并找到丢失的数据。
3. 造成SSD坏块增加。系统的突然掉电有可能会使NAND闪存中多个bit发生错误,如果错误的bit超过了ECC的纠错能力,主控就会将其标记为坏块,后续就不能用来存储数据。这也就是为什么在不正常断电之后,我们有时会看到坏块的增加。

在上一篇文章("你知道企业级SSD与消费级SSD的区别吗?")中,我们有介绍企业级SSD与消费级SSD区别。简单言之,企业级SSD更加注重数据的安全性,而消费级SSD更加注重的是成本。

对于消费级SSD,由于对数据的安全性要求不能那么的严格,并且ECC/LDPC纠错技术,Wear-leveling技术以及其他的Flash管理技术基本可以满足需求。

但是,对于企业级的SSD,这些措施并不能完全满足数据安全性的苛刻要求。

目前针对企业级SSD掉电保护的措施有两种:
1.增加电源储存电路(power hold-up circuit)。
2.关闭“回写缓存”(write-back caching)功能。

接下来,我们就这两种保护措施展开介绍:

1.增加电源储存电路(power hold-up circuit)。
大多数的企业级SSD会有一块专门检测SSD供电电压的电路,如果检测到供电电压低于设定的阈值时,此时会给SSD主控发送预警。这时会启动power hold-up电路,保证SSD正常的操作。
我们一个SMART公司的一款XceedIOPS SSD的掉电保护电路图。
SSD掉电保护也是一门艺术
Power hold-up电路中的电压源可以是超级电容(supercapacitor), 一系列的分离式电容(discrete capacitors),甚至可以是一块电池(不过,目前市场上还没有产品采用这个方法)。这里主要分享超级电容和分离式电容。

(1)超级电容
超级电容是通过极化电解质实现储存能量的电化学元件。它可以在较小的三维空间存储惊人的能量。基于超级电容的掉电保护电路如上图所示。

由于设计基于超级电容的掉电保护电路相对简单,所以大多数的企业级SSD也是采用这个方法。但是超级电容想要在企业级SSD的应用中立于不败之地,并不容易。

超级电容大多数是铝电解电容。虽然铝电解电容具有较高的电容体积比,但是与所有的电解电容一样,铝电解电容同样具有可靠性顾虑。
超级电容会随着时间的增加,容量减小,并且电解液也会因为泄露和扩散而不断流失。温度对超级电容的影响不容忽视,环境温度每上升10度,超级电容的寿命就会折半。
SSD掉电保护也是一门艺术

(2)分离式电容
分离式电容会增加电路设计的复杂性,不过会克服超级电容可靠性的限制。基于分离式电容的掉电保护电路是采用了一系列的分离式电容并联,如下图。
SSD掉电保护也是一门艺术
分离式电容主要有氧化铌电容和聚合钽电容。这些电容不像超级电容那样采用电解液,所以不会有泄露相关的问题。氧化铌电容和聚合钽电容的环境温度可以达到85度。从这个角度讲,分离式电容更加利用企业级SSD的应用。


选择超级电容还是分离式电容,需要应用者根据成本与可靠性做出折中的决策。


2.关闭“回写缓存”(write-back caching)功能
我们先回顾一下什么叫write-back caching。看下图:
SSD掉电保护也是一门艺术
在Host写入SSD数据的整个流程是这样的:
(1)Host触发写入命令,并传入数据;
(2)SSD接收到数据之后,把数据放到DRAM缓存中,并开始写入NAND闪存;
(3)SSD发送完成报告给Host(注意,这时Data还没真正写入NAND闪存,SSD已经发送完成报告了);
(4)来自DRAM缓存的数据,这时才真正写入NAND闪存;
(5)NAND闪存完成数据写入之后给主控报告。

这样的一个过程,我们就称为write-back caching。

假设,系统在第(4)步掉电了,这时Host已经接收到完成报告,就认为数据已经写到了NAND闪存。但现实是骨感的,数据还在路上,这样,数据肯定丢失了。Host再去读它自己认为已经写好的数据,那么SSD会返回数据错误或者数据丢失。

如果,我们把这个功能关掉,把上面的流程调整一下:
(1)Host触发写入命令,并传入数据;
(2)SSD接收到数据之后,把数据放到DRAM缓存中,并开始写入NAND闪存;
(3)来自DRAM缓存的数据,这时才真正写入NAND闪存;
(4)NAND闪存完成数据写入之后给主控报告;
(5)SSD发送完成报告给Host。

这样, Host就不会错误的读取信息了。但是这样的做法会降低SSD的写入性能。这也需要使用者做出折中的方案。

【结语】
掉电保护对企业级SSD尤为重要,目前掉电保护的措施有:
1.增加电源储存电路(power hold-up circuit),电容可以超级电容或者分离式电容。
2.关闭“回写缓存”(write-back caching)功能。

研发更加有效的掉电保护技术是一门科学,更是一门艺术,让我们拭目以待新科技。

参考文献:

1. Power failure protection, SMART Systems Application Note AN003,
2. The Art of SSD power fail protection white paper, Western Digital, 2013,

更多内容,请关注微信公众号:存储随笔,ID: Memory-logger,
SSD掉电保护也是一门艺术

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有