第4章 SSD核心技术:FTL 4.6-4.10

4.6 掉电恢复

     掉电分两种:正常掉电和异常掉电。不管是哪种掉电,重新上电后,SSD都需要能从掉电中恢复过来,继续正常工作。

  1. 正常掉电 

  2. 异常掉电

 

  (1)异常掉电为何会导致数据丢失?

        答:闪存掉电后数据不会丢失,但SSD中不只有闪存,还有掉电后数据会丢失的RAM、DRAM 或SRAM。

        闪存的作用是存储数据,RAM的作用是在SSD工作时,缓存用户数据和存放映射表,一旦掉电,RAM的数据就会丢失。

(2)如何解决异常掉电数据丢失的问题?

        答:有两种方法。

        方法一:在SSD上加电容,SSD一旦检测到断电,就让电容开始放电,再把RAM中的数据刷到闪存中,从而避免数据丢失。

        方法二:把RAM这种Volatile(掉电数据丢失)的东西,用Non-Volatile(掉电数据不丢失)的东西来替代。比较前卫的想法。

    但是,与RAM中用户数据丢失不同,RAM中映射表数据是有办法恢复的。SSD的异常掉电恢复主要就是映射表的恢复重建如何将映射表恢复重建?

        答:SSD在把用户数据写到闪存的时候,会额外打包一些数据,即元数据(Meta Data),元数据记录着该笔用户数据的相关信息,如LBA、时间戳等。

        可以利用全盘扫描技术,并利用元数据来重建映射表。

(3)全盘扫描重建映射表时,如何解决数据新旧、重建速度等问题?

        答:可以让SSD定期把SSD中RAM的数据(包括映射表和缓存的用户数据)和SSD相关的状态信息(如Block的擦写次数等)写入到闪存中。这个操作称为Checkpoint(检查点),此处译为”快照“。

 

4.7 坏块管理

4.7.1 坏块来源

   (1)出厂坏块(Factory Bad Block):天生的坏块;

  (2)增长坏块(Grown Bad Block):随着闪存的使用,一些好的Block变成坏块。主要原因是擦写磨损。

4.7.2 坏块鉴别

  1. 出厂坏块:通过建立坏块表。

  2. 增长坏块:会通过读写擦等操作反映出来。

4.7.3 坏块管理策略

     一般有两种策略管理坏块:略过(Skip)策略替换(Replace)策略

  

  1. 略过策略

        根据建立的坏块表,在写闪存的时候,一旦遇到坏块就跨过它,写下一个闪存。

        优缺点:性能不稳定。

 

 

  2. 替换策略

        当某个Die上发现坏块时,会被该Die上的某个好块替换。

        采用此策略,除正常用户使用的Block外,还需额外的保留一部分好的Block,用于替换用户空间的坏块。整个Die上的Block被划分为两个区域,即用户空间和舆论空间。

        优缺点:存在木桶效应,如果某个Die质量比较差,则整个SSD可用的闪存块则受限于那个坏的Die。

        用户写入数据,遇到坏块B,它不会略过Die1不写,而是写入到Block B的替换者Block B'上面去。

 

4.9 RD&DR

  1. RD

        读干扰会导致其他Page发生轻微写,过多的轻微写会导致比特翻转,即1—>0。当出错比特数超出ECC的纠错能力时,数据就会丢失。这是RD的原理。

    刷新的方式:阻塞Block 非阻塞Non-Block 两种处理方式。 

    (1)阻塞方式:固件把其他事情放到一边,专门处理闪存块的刷新。劣势,会带来很长的命令时延。

    (2)非阻塞方式:闪存块的刷新与其他操作同时进行(Interleave操作)。

    目前的FTL一般都采用非阻塞的刷新处理方式

  2. DR

 

4.10 Host Based FTL

     按照FTL放在哪里划分,SSD有 Host Based FTLDevice Based FTL 两种模式。

     Host Based FTL:把FTL放在主机驱动程序中;

     Device Based FTL:把FTL放在SSD主控内部。

 大部分企业级和几乎全部消费级的SSD都是Device Based。

4.10.1 Device Based FTL的不足

    下图是两种模式的架构对比。

  1. 从逻辑上说,一个完整的Device Based SSD系统可以分为三块

   (1)主机驱动:为应用程序提供读写接口;和板载控制器通过NVMe等协议进行交互,完成应用 程序的读写命令。

  (2)板载控制器:通过SATA、NVMe等协议,接收主机发送的命令并执行;管理SSD,实现FTL垃圾回收、磨损平衡等算法;控制和实现闪存时序。

  (3)闪存阵列:存储介质。

  2. Device Based 存在以下缺点:

   (1)FTL架构通用,不能针对具体应用做定制化;

   (2)控制器芯片功能复杂,设计难度大,研发成本高;

   (3) 闪存更新很快,一般每年都会有具有新特性的闪存被推出,那么就需要对控制器芯片做出修改,但芯片改版成本很高;

   (4)企业级应用需要高性能、大容量,通用控制器芯片支持的最大性能和容量有限制;

   (5)企业级市场需求多种多样,通用SSD主控芯片无法提供。

4.10.2 Host Based FTL架构

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值