Lifetime Improvement of NAND Flash-based Storage Systems Using Dynamic Program and Erase Scaling

来源:互联网 发布:六边形战士 知乎 编辑:程序博客网 时间:2024/04/30 21:23

1. 摘要

  • Flash的寿命限制了它的发展,本文提出了一种新的、系统级的方案来延长flash的寿命,即DPES(dynamic program and erase scaling)。之所以提出这个方案,是因为我们发现一个现象:改变NAND flash的擦除电压和擦除时间可以明显改善其寿命。降低擦除电压、减小擦除速度,可以有效延长flash的寿命。调整NAND芯片,使其在不同的擦除电压和擦除时间里,支持多次写操作和擦除操作,则DPES则可以使用软件,在flash的寿命与擦除电压/擦除时间之间找到一个平衡。

2. 现有背景下的问题

  • 基于NAND Flash的存储设备越来越普遍,半导体芯片技术(10nm)也应用于TLC设备或者3D NAND设备中,但是NAND Flash的寿命问题依旧是它发展的主要阻碍。NAND Flash的密度每二年都会翻倍,但是它的寿命跟不上这个增长速度[ ],比如从2009年到2011年,NAND Flash的寿命只增长了20%。
  • 总容量为C的NAND flash的寿命为Lc, 最大擦除次数(P/E)为MAXP/E,每天总的写数据为Wday。则有:
    LC=(MAX(P/E)C)/(WdayWAF)
  • WAF为写放大倍数,代表了FTL算法的效率。比如,垃圾回收期间,通过避免不必要的数据复制,可以减小WAF[ ]。
  • 从系统级减小W_day的方法:重复数据删除[ ]、数据压缩[ ]、写流量节流。系统软件级技术一般都是增大〖MAX〗_(P⁄E)。

3.给出的解决方案

  • 本文提出一种动态编程及擦除缩放dynamic program and erase scaling (DPES)的方法,通过改变擦除电压和擦除时间(用更小的电压、更慢的擦除一个块),可以显著提高〖MAX〗_(P⁄E),延长NAND flash的寿命。

3.1 解决方案综述

  • NAND Flash的寿命与氧化层的应激损伤(stress-induced damage)相关[ ],而应激损伤指数依赖于应力电压(stress voltage)。减小应力电压(特别是擦除电压)可以提高NAND 寿命。实验得出:20nm节点的NAND 芯片P/E周期时擦除电压减小14%,〖MAX〗_(P⁄E)可以增加117%。但是向这种块(擦除时电压减小的块)中写入数据时,写操作需要更窄的阈值电压分布,这就需要更细粒度的控制,会延长写操作的时间。
  • 我们又提出一种方案:在擦除操作最初使用较低的电压,然后在擦除过程中,慢慢将此电压增大到正常的擦除电压,这样〖MAX〗_(P⁄E)会增大,但同时擦除时间也将延长。
  • DPES就是研究NAND 寿命与擦除电压速度(固件级,亦软件级)间的联系。DPES可以充分利用连续写请求间的空闲时间,这样缩短了阈值电压分布的宽度,因此擦除过的块(经过小电压擦除过的块),可以被用于大多数的写请求。这个空闲时间可以用于减缓擦除速度。如果这个空闲时间可以被自动的估计,则DPES技术可以选择最合适的擦除速度(擦除电压)。
  • 我们提出一种创新的NAND 模式,在动态编程及擦除缩放时,可以自动精确的捕获NAND 寿命和擦除电压/速度间的折衷。使用了这种模式的DPES算法,称为autoFTL 。

3.2 原理概述

3.2.1 NAND Flash 的阈值电压分布

  • MLC NAND Flash中,不同的电压表示不同的状态,其中,M_Pi表示相邻阈值电压间的宽度,W_Pi表示阈值电压的宽度,它们主要由数据保留时间和写操作时间影响。故整个阈值电压分布的宽度W_Vth必需满足所有的NAND flash的需求,厂商为了保证可靠性及性能需求,往往将内部高度相关联的可靠性参数设为固定值,以满足最坏情况下的需求。本文的DPES算法是牺牲了W_Pi(影响擦除时间和写性能),提高了寿命。

3.2.2 NAND的擦除操作

  • NAND flash通常使用步脉冲增长模式(ISPP),即写操作电压每次增长V_ISPP。而写操作的时间:T_PROG,有T_PROG ∝ VPGMend - VPGMstartV_ISPP。如图1.

  • 当V_ISPP缩放比为x%时,V_ISPP降低x%。如图2,当横坐标V_ISPP缩放比为50%时,T_PROG为200%,即写操作时间增加了100%。当阈值电压很窄时,V_ISPP很小,则需要更精确的控制,而写操作时间也会增大很多。

3.3 Dynamic Program and Erase Scaling

3.3.1 擦除电压变化对寿命的影响

  • 当应激电压增大,氧化层的击穿电压T_BD按指数级减少。故P/E周期通过减小应激电压(写或擦除电压),可以增大NAND 寿命。完成一次写操作的最大电压比擦除操作大,但是NAND flash的寿命往往由擦除操作决定,因为一次擦除操作的应激时间比写操作长100倍,故若擦除电压能够降低,则NAND 寿命便可明显延长。

  • 如图3,设电压缩放比例为r,即当r为x%时,表示擦除电压降低x%,即擦除电压为正常电压的1-x%. retention BER作为NAND 芯片磨损程度的测量依据,有效磨损表示一个P/E周期后NAND 的有效磨损程度。实验表明:r越大,即擦除电压越小,则retention BER越小,即NAND磨损越轻微,寿命越长。而有效磨损随着r的增加,线性减小,由图可知,3K次P/E周期后,正常擦除电压下的有效磨损为3K;当擦除电压比正常电压低14%(是正常电压的86%)时,有效磨损为1.38K(r=0.14时有图得effective wearing=0.46),此时〖MAX〗_(P⁄E)增长到2倍多。

3.3.2 Dynamic Program Scaling

  • 若擦除电压比正常时小,则写操作的阈值电压窗口会变窄。如图4,当擦除电压为V_ERASE^small(正常擦除电压为VERASEnominal,且VERASEsmall<VERASEnominal时,阈值电压窗口比正常电压下的阈值电压窗口窄W(Vth)W(Vth)与(VERASEnominal- VERASEsmall)成正比。故当确定了VERASEsmall后,阈值电压窗口便可确定,则阈值电压分布也可确定,此时写操作的控制需要更精确,这就增加了写操作时间。

  • DPES技术中使用五种擦除电压模型:EV_(〖mode〗0 )···EV(〖mode〗4 ),其中,EV(〖mode〗0 )的擦除电压V_0最大(正常擦除电压),EV(〖mode〗4 )的擦除电压V_4最小。当一个块被擦除后,需要再次被写入数据时,有一个最小的写操作间隔,它依赖与擦除电压模式。见图5(a),当NAND flash块的擦除电压模式为EV(〖mode〗_4 )(V_4是V_0的89%)时,而它的最小写操作间隔是正常情况下的2倍。

  • 定义五种写模式分别为:W(mode0)··· W(mode4),其中W(modei)满足EV(modei)下的最小写操作间隔需求。当j>i,W(modej)>W(modei)。如图5(b),显示了不同写模式下, VISPP的缩放比。如在W(mode4)模式下,写操作时间延长1倍,VISPP大大的减小。

  • 动态编程扩展可以很容易的整合在NAND控制器中,同时时间、空间代价都很小。NAND芯片中,为了满足最坏情况下的数据存储需求,M_Pi往往足够大。如图5(c)显示了在不同的磨损次数下M_Pi的缩放比。

3.3.3 擦除时间对NAND寿命的影响

  • 当擦除一个NAND块时,需要对这个块施加一个电压。在擦除操作的最初,若立即施加一个高电压(擦除电压+阈值电压),这个电压会对芯片氧化层造成很大的损伤。若在擦除操作的最初,对块施加一个较小的电压,然后慢慢增大这个电压的值,既可满足擦除需求,也可减小芯片的损坏,但同时擦除时间会增大。

  • 如上图6(a),显示了擦除时间与有效磨损的关系。其中,ESmode_fast、ESmode_slow表示两种擦除模式。可知,当擦除时间增大300%即为正常擦除时间的400%时,磨损减少了19%。图6(b)表示了不同擦除电压下,两种擦除模式下的磨损。在不同的写操作时间(短-长)需求下,擦除模式也不断连续变化(快-慢)。故根据即将到来的写请求估算所需的擦除模式,是很重要的。

  • 模型:支持DPES的NAND块的NAND耐久性模型。如下图7,显示了最快擦除模式和最慢擦除模式下的有效磨损。ESmode_fast不能增加NAND的耐久性,ESmode_slow可增大NAND的耐久性。

3.4 AutoFTL方案实施

  • 在NAND耐久性模型上实现autoFTL,即DPES-aware FTL,它可根据写操作吞吐率的需求,动态改变写/擦除模式;并使用页级映射,同时支持DPES。总体构架见下:

  • AutoFTL的核心模块:DPES管理器,它为写操作选择写模式Wmode_i,为擦除操作选择擦除电压模式EVmode_j和擦除速度模式ESmode_k。使用一个Circuler Buffer,评估写操作吞吐率的需求,为DPES管理器提供选择依据。
    扩展的映射表包含:NAND参数表、Per-Block Mode表、地址映射表。Per-Block Mode表记录每个块的当前写模式和有效磨损次数。NAND参数表为当前写模式和擦除模式选择合适的设备参数,通过新的设备接口DeviceSettings传递给NAND芯片。
    AutoFTL中,写模式选择器根据CircularBuffer估计写操作间隔,下表1显示了循环缓存利用率与写模式的关系。

  • 扩展的映射表中,Per-Block Mode表记录块的5个链表(在5中擦除电压模式下)。当写操作到来,DPES管理器选择一种写模式,Per-Block Mode表的相应链表指向写操作被分配的块地址,DPES通过NAND参数表 将各种参数传递给NAND芯片。
    AutoFTL的擦除电压模式:由循环缓存使用率决定,并依照表1示。缓存使用率的计算:将〖10〗^5个写操作分为100组,每个组1000个写操作,分别计算每个组的平均使用率A0~A99,则缓存使用率为(A0+A1+···+A99)/100.

  • AutoFTL的擦除速率模式:由块擦除时间对缓存使用率的影响决定,当 缓存无溢出(有效缓存小于100%)时,擦除速率模式使用ESmode_slow,否则使用ESmode_fast。
  • 垃圾回收时,缓存的有效使用率为:u^*= u + ∆u^copy。其中,u为缓存当前使用率,∆u^copy为擦除块中有效页对缓存使用率的影响。
    磨损均衡器:衡量NAND芯片磨损的指标是有效磨损次数。

4、方案的结果

4.1 测试环境

测试环境:扩展的FlashBench,支持DPES。
每个NAND芯片有128个块,每个块128个页,每个页大小为8KB。正常写页时间:1.3ms;擦除块时间:5.0ms。
两种环境:基于安卓的智能手机;企业服务器。
两种技术:baseline(不支持DPES)和autoFTL
Trace:8种。

4.2 测试结果及分析

下图显示了8种trace下,baseline和autoFTL的〖MAX〗(P/E)。图9可得:企业级环境(前6个trace)下,相比于baseline,autoFTL的〖MAX〗(P/E)提高了69%;手机环境(最后2种trace)下,autoFTL的〖MAX〗_(P/E)提高了38 %。

图10显示了8种trace下,baseline和autoFTL的吞吐率。可得相比于baseline,autoFTL的写操作吞吐率下降了不到2.2%。

由上验证可得:autoFTL可明显提高NAND flash的寿命,且对系统性能的影响很小,可忽略。

5、方案的优缺点

  • 优点:(1)提出DPES管理策略,通过减小擦除电压和延长擦除时间,得到延长NAND flash寿命的目的。(2)添加了新的设备接口:DeviceSetting,将选择的不同模式下的参数传递给设备。(3)研究NAND 寿命与擦除电压速度(固件级,亦软件级)间的联系。从NAND flash的芯片内部特征,提出全新的延长寿命的策略。

  • 缺点与思考:(1)DPES管理策略在选择各种模式(擦除电压模式、擦除速率模式、写操作模式)时,大都用缓存利用率来衡量,不足够精确。(2)在不同的环境下,各种模式(擦除电压模式、擦除速率模式、写操作模式)的具体值如何设置?

0 0
原创粉丝点击