动态擦除电压和时间尺度(FTL)

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者:李大虾

 

dvsFTL
在不影响其他Nand要求的情况下,提高Nand持久度而设计的基于DeVTSFTLdvsFTL。基于Nand持久度模型,动态改变擦除尺度模式和写性能调整模式。

dvsFTL架构如下:
DeVTS Manager
是关键模块,它选择最合适的擦除尺度模式和写性能调整模式,以达到给定写请求的性能和保持力的要求。
写性能要求的write-speed mode(WSmode)erase-speed mode(ESmode)根据write buffer来估算。
保持力要求的write-retention mode(WRmode)通过retention-time predictor来预测。
DeVTS Manager
通过选择写性能调整模式决定erase-voltage mode(EVmode)

retention keeper周期检查写入数据的剩余retention时间,如果到期就重新写入到另一个Page
mapping table
除了logicalphysical的地址映射信息还会额外存放每个blockmode信息(比如erase/write modeΣEW)。
注:可以通过Device Setting来配置不同Nand Devicewrite/erase mode

  1. Write-Speed Mode选择
    最适合的Write-Speed Mode:在可变的write-mode中存在最慢write-mode,但不影响整体性能。
    DeVTS manager
    里面的Wmode selector通过使用上图中的uwb评估给定写请求的写性能要求,uwb在运行时反应从系统host端到来数据速度rin和写到flash里面的速度rout的差,因此rin<routuwb会减少,在这种情况下就不用最大化写性能(可以适当慢写)。相反,rin>routuwb增加,则要求尽可能快的写。
    图中设置了三级写性能要求,uwb小于0.33时候,从buffer写到nand page使用WSmode2(最低写入速度);uwb大于0.66时候,使用WSmode0最快写入速度。
    Garbage Collection发生时候,rout会明显减少,例如GC操作50%Nand空间,rout会减少50%,如果rout降到rin以下使uwb增加,最快写入模式能缓解GC带来的影响。
  2. Write-Retention Mode选择
    Wmode selector
    为给定预测未来更新时间的写请求提供最适当的write-retention mode
    首先在预测的周期内执行,这个时间要比Nand设备本身的短很多,Wmode Selector就会选择WRmode short来执行。当预测未来retention时间要求不正确,reclaim程序被调用,用来保护数据的持久性。然而太过频繁的reclaim操作会降低retention的能力,因此要减少reclaim page的数目和overhead reclaim
    我们从两个层面上解决上述问题:retention时间预测的资源优化和retention管理的技术要求。
    1Retention要求预测:
    依据:最近请求的平均更新间隔
    实现:每当一个LBA的写请求发生,该LBA映射的多维计数器增加。为了更新间隔和预测最短保持时间比较,所有计数器必须在指定的时间内减少。比如更新间隔短语预测最短保持时间,则计数器值增加,相反减少。多个周期后,计数器值大于预设的阈值,保持时间预测器认为最近更新间隔平均要短于预测最短保持时间,也就意味着最近该写请求更新频繁,可以用空间局部性原理改善。
    技巧:为每个LBA设计计数器实在是太浪费,如图所示,使用3hash函数仅保留有限个计数器。这个技巧值得仔细研究一下。
    2)最大化Endurance效果:
    这个就要求减少误判断了,降低reclaim
    误预测控制hash冲突是误预测的根源。如图所示,hash冲突无意的增加了cold data的计数器,因此会被认为是短保留数据,这种数据被定义为false-short,最终被reclaim
    误预测控制,就是如图所示增加反馈寄存器,检测数据被reclaim就设为1,依次来阻止后面出现的连续误预测。如果反馈寄存器都被设置了1retention-time predictor就会增加决策阈值水平。
    例子:一个写请求的计数器值为15124,假设预测阈值是4,但所有反馈寄存器位为1,这个写请求被认为是长保留数据,因为预测阈值会被从4提高到8
    如果预测正确(例如写到短保留时间会在最短保持时间内更新),反馈寄存器会被重设为0,并且预测阈值恢复正常。
    选择性保持调整:当太多的pagereclaim,就要暂停保持能力调整。
    例子:假设每个block100page,组合WRmode shortWSmode05000page,首先50block会在EVmode 2被擦除(有效的wearing0.59),根据原理部分介绍,保持力调整写的总endurance收益在20.5=1-0.59*50)。每个block60page会被WRmode long reclaim的话,在reclaim期间就有30=60*50/100)个block会被EVmode 0擦除。因此reclaim写导致总的endurance失去部分是23.4=0.78*30)。所以失去要比收益的大。
    因此就不能用short-retention的写模式,这就要求计算收支平衡点。对于例子来说,每个block的收支平衡点reclaim page数目在52.6=1-0.59/0.78*100)。retention keeper会持续地监控每个block的平均reclaimpage数目,当大于这个收支平衡点,就会暂停保持能力调整,忽略保持时间预测,选择WRmode long的模式。如果小于就重新启动保持能力调整。
    3)最小化Reclaim Overhead
    由于比较难的预估误预测,就有了最小化reclaim overhead的需求。reclaim目标是保护WRmode short存储的数据耐久性,在deadline到期之前为了可靠的重写误预测的数据,retention keeper会周期地检查剩余retention时间,这也是一件很消耗系统资源的程序。因此设计了一个简单有效的reclaim技术:
    如图所示,设置两个区域,一个是short-retention region,另一个是long-retention region;当要写short-retention的数据,会从free block region选择一个free block id和写入时间插入到retention keeperretention队列中。虽然这个block的后面写入时间不同,但是用第一个写入block的时间作为该block的最差dead-line是很好的选择。retention队列可以选择FIFO的方式,每个block的剩余retention时间就是自动的升序排列,方便检查。当retention keeper检测到某个retention dead-line到了,错误预测的page所在的blockreclaim过程中变为free block,并且使用WRmode long将数据写到long-retention region
  3. Erase-Voltage模式选择
    选择合适的erase-voltagedvsFTL的关键,使用EVmode5(最低erase-voltage)可以增大Nand endurance,此时必须选择WSmode2(最慢写模式),这时写的性能退化明显。
    如果reclaim的时候,EVmode5模式用于近期会被更新的hot data block,浅擦的block会被cold data写,这样endurance收益就会变得很差。当全部使用EVmode0(最高erase-voltage),维持全部的write-performance也达不到潜在的性能。因此评估未来写请求的要求,同样是选择正确的erase-voltage模式的关键步骤。
    前台GC过程Wmode selector会选择接收到的写请求的write-speedwrite-retention模式,被擦除块会选择NAND endurance模型中相对应的erase-voltage。比如∑EW小于0.5K时,选择WRmode shortWSmode 0Emode selector会选择EVmode 2作为合适的erase-voltage
    后台GC过程,难以预估顺序的写请求,因为后台GC运行在写请求没有被调用时候,因此Emode selector延迟决定正确的erase-voltage模式,选择默认的EVmode 5(浅擦,最低erase-voltage),如果这个block没有被写满,下一个写请求就不用再选择,直接写入。如果选择的写模式不能兼容EVmode 5,选择的块会额外的使用lazy erase(懒擦除)操作(latency小于1000us),虽然block的第一个page写延时增加77%,但是由于lazy erase推进第一个page的写,整体写性能的负面影响只要0.6%,而DeVTS可以充分利用寿命的增加。
  4. Erase-Speed模式选择
    Emode selector
    选择正确的erase-speed模式能提供额外的寿命并不影响整体的写性能。由于在erase期间,写请求的数据在缓存中不能被写入Nand中,当持续写请求,buffer的利用率增加。根据buffer利用情况来判断使用ESmode fast还是ESmode slow。判断标准是当前buffer的使用率和erase期间增加的buffer使用率总和U*
    如果U*大于1选择ESmode fast,否则额外检查ESmode slow的结果在当前的write-speed模式下。如果U*增加到当前缓存利用率分界之上(0.330.66,参见第一节介绍配图),写请求将会使用快速写模式,这时候由于endurance收益在慢擦模式下小于快写模式。参见下图(图中数值代表有效磨损,值越大,磨损越厉害):

  5. 可以看出ESmode slow是一个适合的选择,既不影响整体写性能而且提高了寿命。
  6. DeVTS-Aware Garbage Collection
    GC
    程序被调用,为数据copy选择一个合适的write-speed模式也最大化DeVTS效率的挑战。如果有效数据copy一直选择快速写模式,性能会很好。然而由于深度擦除(兼容快速写模式)被频繁使用,增加擦除电压不可避免。相反,如果数据copy过程中一直使用慢写模式,写性能会明显降低。由于在数据copy过程中,写请求会将数据写入buffer中而不会写入flash。因此buffer利用率根据有效数据copy的大小而增加。因此,buffer的有效利用率在有效数据copy之后的改变反应了模式选择,大于1选择快写模式(WSmode 0),否则选择不影响当前write-speed模式的最快可用写模式。

     

分类目录 SSD, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。