异常掉电的隐患

  若没有合理的掉电保护机制,而异常掉电的发生又不可避免,当发生异常掉电,会引发很多问题。

(1)丢盘

  异常掉电,会使得映射表来不及保存,丢失逻辑地址到物理地址的映射,待重新上电后,SSD将无法被BIOS识别。只能通过返厂维修解决问题,然而所谓返厂维修是通过重新开卡解决你的丢盘问题。重新开卡也就意味着所有用户数据的丢失!

(2)丢失缓存中的数据

  SSD一般都采用SDRAM或者DDR(也即DDR SDRAM)做缓存,其中SDRAM是非易失性存储介质,断电之后数据会丢失。

(3)导致误判的“坏块”增加

  MLC中,能存储2bit的数据,page以shared page方式存放,把LSB、MSB一个物理cell的两个bit分别映射到两个不同的page里面;将LSB(lower significant bit)放到Lower page(慢页)中存放,将MSB(most significant bit)放到Upper page(快页)中存放;操作规则为:先操作LSB后操作MSB。因此慢页的操作耗时比快页短。

  所以在MLC中,若Program时,Lower page没有被成功Program,会导致这个cell上的电压发生偏移,从而影响到Upper page中的数据。因此,如果错误bit数超过ECC纠错能力,那么在重新上电读取错误时,该Block被标记为坏块;或者,如果Lower page已经编程成功,而在Upper page编程过程中突然掉电,必然会导致Lower page中的数据发送错误,如果数据错误数量超过SSD ECC纠错能力,那么就会在读取时出现错误,Block会被主控判为“Bad Block”并标识到bad block table中。

掉电保护原理

  通常SSD会使用钽电容或者超级电容用作掉电后的供电设备;钽电容,适合宽温环境,但是容量较小;超级电容,不适合高低温环境,但是容量很大。

(1)超级电容(或钽电容)通过正常电源充电;

(2)在超级电容(或钽电容)输入端、SATA电源输入端,分别对输入电源进行侦测,侦测电路连接到对应的GPIO口;

(3)电源突然断电的瞬间,由GPIO反馈到Firmware;

(4)端口5V断后,Firmware反馈给HOST,不再接收还未传输到SSD的数据;

(5)限制电路端的侦测电路(防止瞬间输入电流过大而击穿硬件的保护电路)反馈到HOST,切换电源输入,转由超级电容(或钽电容)供电,满足断电后更新映射表及缓存内数据的写入所需的电力。

待考虑的问题

(1)电容容量的大小

  容量太小:电量不够用于数据的保存,照样会有异常掉电隐患。容量太大:一是,SSD需要电容充分放电后才能被识别,如果只是短暂突然的掉电,重新上电后电容仍然没有放电完毕,SSD将不会被识别;二是,容量大的电容需要充电的时间长,充电时间若不够,没有足够的电量保存数据。

(2)电容得老化问题

  电容也是有使用期限的,很长时间之后电容得老化可能导致电容电量只能有原来的30%。

(3)数据保护对象

  不同的厂家对数据保护对象有不同,常见的保护对象分为以下三种:

  • 保护SDRAM中所有数据(映射表+用户数据);再次上电后,相当于断电前的操作被中断,重新上电后就可立马进入待命状态。
  • 只保护映射表;再次上电后,需要先把上次NAND Flash中保存的映射表提取到SDRAM中,再将保存的用户数据提取出来,两者结合更新映射信息,更新完之后才进入待命状态。
  • 只保护用户数据;再次上电后,需要先把上次NAND Flash中保存的映射表提取到SDRAM中,只是丢掉了用户断电前正在操作的数据,无法更新。

【转载】SSD断电保护原理的更多相关文章

  1. [转载]SSD原理与实现

    [转载]SSD原理与实现 这里只mark一下,对原论文讲解的很好的博文 https://zhuanlan.zhihu.com/p/33544892 这里有一个关于SSD的很好的程序实现,readme里 ...

  2. iOS App的加固保护原理

    本文由  网易云发布. 本文从攻防原理层面解析了iOS APP的安全策略.iOS以高安全性著称,但它并非金刚不坏之身.对于信息安全而言,止大风于青萍之末是上上策,杭研深入各个细节的研发工作,正是网易产 ...

  3. [转帖]SSD的工作原理、GC和TRIM、写入放大以及性能评测

    SSD的工作原理.GC和TRIM.写入放大以及性能评测 https://blog.csdn.net/scaleqiao/article/details/50511279   SSD的物理结构和工作原理 ...

  4. 进程保护原理Hook函数Openprocess

    Win32子系统:                                                                                            ...

  5. [转载]jQuery诞生记-原理与机制

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3520 一.看似偶然的 ...

  6. 【转载】COM多线程原理与应用

    原文:COM多线程原理与应用 目录: COM多线程原理与应用 目录: 前言: 套间: 套间的定义: 套间的分类: 套间的进入和退出: 对象的同步: 组件对象的同步: COM对象线程模型: 进程内对象线 ...

  7. SSD基本工作原理

    SSD主要由SSD控制器,FLASH存储阵列,板上DRAM(可选),以及跟HOST接口(诸如SATA,SAS, PCIe等)组成. SSD主控通过若干个通道(channel)并行操作多块FLASH颗粒 ...

  8. 【转载】Java类加载原理解析

    Java类加载原理解析 原文出处:http://www.blogjava.net/zhuxing/archive/2008/08/08/220841.html 1       基本信息 摘要: 每个j ...

  9. [转载]cocos2d-触摸分发原理

    本文由泰然翻译组组长 TXX_糖炒小虾 原创,版权所有,转载请注明出处并通知作者和泰然! 原作 http://www.ityran.com/archives/1326/comment-page-1 触 ...

随机推荐

  1. SQL Server Replication 总结

    合并复制中,数据库架构的更改要重新生成发布端的快照 在SQL Server 合并复制中,如果在发布端做了数据库架构的更改(例如新建表,更改表结构等),原则上来说都需要重新生成发布端的快照,订阅端才能同 ...

  2. Archive MySQL Data In Chunks Using Stored Procedure

    sqladminon September 26, 2018 In a DBA’s day to day activities, we are doing Archive operation on ou ...

  3. 学习python 第一章

    目录 第一章... 1 1:新建项目... 1 2:修改默认模板... 3 3:什么是变量... 3 4:重指向... 3 5:常量的表示... 4 6:格式化输出(三种方法)... 4 7:打印一个 ...

  4. .后面是方法不加引号 ,后面是"名"要加引号

    .后面是方法不加引号 ,后面是"名"要加引号  

  5. 学习H5C3

    不一样的老师,不一样风格,刚开始我们都是非常热情,知道这是非常重要的,我需要坚持,加油!!!

  6. SDN2017 第五次实验作业

    实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析验证负载均衡 实验步骤 建立以下拓扑,并连接上ODL控制器. 利用ODL下发组表.流表,实现建议负载均衡 s1组 ...

  7. 极限编程核心价值:简单(Simplicity)

    写在前面 在编写 ASP.NET Core 项目时,深感项目设计的无力感,在软件设计方面我还有很长的路要走.我一直以来都把代码当作一种艺术的存在,认为自己是个"艺术家",其实就是个 ...

  8. 1.js基础(以通俗易懂的语言解释JavaScript)

    1.JavaScript组成: ECMAScript: 解释器.翻译 -->几乎没有兼容问题 DOM: Document Object Model -->有一些操作不兼容 BOM: Bro ...

  9. http-server

    http-server是基于node.js的一个简单.零配置的命令行web服务器,可以方便实现跨域资源请求, #全局安装: npm install http-server -g: 全局安装后就可以通过 ...

  10. Mapreduce运行过程分析(基于Hadoop2.4)——(二)

    4.3 Map类    创建Map类和map函数.map函数是org.apache.hadoop.mapreduce.Mapper类中的定义的,当处理每一个键值对的时候,都要调用一次map方法,用户须 ...