当前位置: 首页 > 科技观察

NAND闪存磨损均衡算法优化

时间:2023-03-16 13:12:19 科技观察

0.引言如今,越来越多的新型电子设备,如笔记本电脑、智能手机、固态硬盘等都配备了NAND??闪存。NAND闪存凭借其独特的存储方式和超高的稳定性和可靠性,受到越来越多厂商的青睐。受宠。配备NAND闪存的固态硬盘也以诸多优势逐渐取代传统的机械硬盘[1]。使用NAND闪存作为存储设备的固态硬盘没有像机械硬盘那样使用复杂精密的结构,读取数据不需要寻道时间。而且它还有独特的写入方式,因此可以获得比较快的读写速度。并且由于NAND闪存体积小、接口应用广泛、适应各种结构形式,可以被手机、笔记本电脑等精密设备使用[2]。但NAND闪存采用电子管存储,反复写入和擦除数据容易造成损坏,其物理块只能承受几千次擦写操作。要广泛应用NAND闪存,需要采用合适的平均每个物理块的磨损机制,即磨损均衡机制,才能延长闪存的使用寿命。1994年,PCMCIA(个人计算机存储卡国际协会)提出了FlashTranslationLayer(FTL)的概念,FAT文件系统在NANDFlash中使用时,控制器通过对NANDFlash的管理建立一个逻辑FAT文件系统,称为由上层应用程序。同时,它还可以高效地进行磨损均衡[3]。实现闪存磨损均衡的算法按类型分为:动态磨损均衡和静态磨损均衡[4]。班等。[3]研究了静态均衡算法的触发机制,提出了两种触发机制:确定性触发机制和随机触发机制。YaredHailuGudeta等人[5]提出了一种基于概率的静态损失平均算法。在每个状态下,使用标准偏差计算磨损平均分布以确定它是否超过阈值。如果超过阈值,则通过划分热块和冷块在闪存中交换,在所有块中保持损失平衡。李等。[6]对静态磨损均衡算法进行了研究。该算法在系统初始化时将闪存空间分成若干组,记录第一次更新后的数据。每组擦除次数。当达到磨损均衡的触发条件时,统计高于平均擦除次数的组和组中的物理块,然后将这些块的数据移动到空块,然后是地址映射表更新。邢春波[7]提出了一种混合磨损均衡算法(HWL)。这种方法也在系统初始化时将闪存空间划分为块。数组用于维护所有块的擦除状态。该算法统计每个系统更新周期中每个块的擦除状态。HWL算法是目前应用最广泛的算法之一。这篇文章也是基于这个算法。基于改进。本文根据闪存物理块在使用过程中的擦写次数,对闪存数据块进行了分类,并给出了相应的判断标准。同时引入了与lossleveling算法密切相关的threshold的概念;针对磨损均衡算法不能根据存储需求进行调整的缺陷,给出了一种根据数据块擦除次数的标准差动态调整阈值的算法;结合传统的动态磨损均衡算法和静态磨损均衡算法,给出了磨损均衡算法的评价标准,结合静态磨损均衡算法和动态磨损均衡算法设计了一种新的平衡损失算法;根据需求,设计了测试实验来评估磨损均衡算法的效果,对磨损均衡算法的效果进行了实验测试。实验结果表明,本文提出的改进算法对降低闪存擦除的不平衡性具有良好的效果。1NANDflash磨损均衡机制和策略1.1NANDflash的工作原理NAND是一种计算机闪存设备。随着人们对功耗更低、重量更轻、性能更好的产品的不断追求,证明了NAND??的绝对吸引力。闪存按存储单元的存储控制方式可分为单层单元SLC和多层单元MLC控制方式单层单元SLC控制方式依赖于MOS管堆叠栅极上的不同电荷以区分0和1两种状态,多个MOS管组成一个叠栅,构成一个存储单元。相应的多层单元MLC控制方式由单个层单元的SLC控制方式改进。它的叠栅可以识别四种存储状态:00、01、10、11。但同时,由于这类MOS管需要识别多种电荷,这会造成物理性能。不稳定,导致此闪存寿命较短。也正是因为这个问题,进一步提升了磨损均衡机制的重要性。为了保证多层单元MLC控制闪存的寿命,必须在文件系统和机制中使用磨损均衡。1.2磨损均衡评价指标磨损均衡(wearleveling)[8]是指用于延长固态存储设备使用寿命的过程。闪存磨损均衡技术的设计目标是:尽可能减少闪存中所有块的总擦除。在消除次数的前提下,尽量使闪存中各块的擦除次数趋于一致或在一定范围内。根据统计学的知识我们可以知道,平均值描述的是一个样本的平均水平,而标准差则可以反映一个数据集合的离散程度。根据该设计目标,提出了两个衡量flash磨损均衡程度的指标:平均擦写次数和擦写次数的标准差Deviation,简称Dev。公式(1)和(2)中的E(i)表示第i块的擦除次数,n为闪存的总块数。综合以上因素可知,较好的闪存系统磨损均衡策略可以使热数据和冷数据的迁移次数尽可能多,同时物理块擦除的总数越小分区数的平均值,闪存物理块的使用寿命大大延长。另外,物理块的擦除次数标准差越小,说明每个物理块的擦除次数与平均擦除次数的偏差越小,磨损均衡机制的执行效果越好。相反,磨损均衡机制1.3磨损均衡策略1)动态磨损均衡策略动态磨损均衡算法[9]的主要原理是:首先将所有闪存物理块链接到一个动态维护的表中,并在表中链接擦除次数从大到小排序。更新数据时,需要将数据写入表的物理块***,即擦除次数最少的物理块,然后按照擦除次数排序。按照这种方法,数据总是写入擦除次数最少的物理块,从而使闪存的每个块具有相同的磨损状态。2)静态磨损均衡策略静态磨损均衡算法是在动态磨损均衡算法的基础上改进而来的。考虑到在动态磨损均衡算法中,数据总是先写入擦写次数少的物理块,原本保留的更新少的冷数据会一直占用物理块,无法释放。因此,静态磨损均衡算法考虑了对冷数据的处理,使整个闪存存储空间不断地平衡磨损。静态磨损均衡算法针对冷数据,预先设置擦写次数阈值,通过遍历每个块的方法计算出更新频率低于阈值的方法,过滤掉冷数据块,然后将数据移动到擦除次数更多的物理块。用同样的方法过滤掉热点数据块,将热点数据块移动到擦除次数上这种方法中,闪存中每个物理块的擦除次数是比较均衡的,随着静态均衡的不断触发机制,热数据块的擦除次数增加非常缓慢,而冷数据块的擦除次数在一定程度上有所提高,因此是一种非常有效的磨损均衡算法。2静态平衡算法设计本文中的静态磨损均衡算法是将现有的动态平衡算法与静态算法相结合,设计出更加完善的算法过程。上面介绍了静态磨损均衡算法设计的基本原理。为此,定义最大擦除次数为Nmax,最小擦除次数为Nmin,两者之差为Th。所要研究的问题[10]表示为:其中式(4)中的Th是本文研究的静态磨损均衡算法的核心,即选择一个合适的阈值Th使得上下差值物理块的擦除次数限制不会太大。同时,它必须满足尽可能小的平均值和标准偏差。2.1触发条件的优化确定性触发的难点在于很难找到合适的系统更新次数,而随机触发只在系统更新频率高的情况下使用[11]。因此,本文设计了一种可以动态选择触发机制的算法,将确定性触发和随机触发相结合,该算法会对系统的更新频率进行统计。如果更新频率高,会选择随机触发条件;如果更新频率低然后选择确定性触发条件。参考损失均衡机制的评价标准,选择系统更新次数的平均值作为判别条件。流程图如图1所示。图1最优触发条件流程图图1最优触发条件流程图2.2阈值决定数据块的状态数据块的磨损状态由block对数据擦除的擦除次数,即公式中wi代表block的磨损程度,ei代表block在系统更新中的擦写次数,a0为总擦除次数并编写此系统更新。磨损均衡过程中会维护一张磨损信息表,表中为每个物理块分配一个字节的空间来记录磨损状态wi。如果wi达到阈值whigh,则该块定义为热数据块,同理,如果低于阈值wlow,则该块定义为冷数据块。擦写任务必须在尽可能不影响性能的情况下均匀分布在每个数据块中[12]。在解决该问题时,本文在对前人动态和静态算法研究的基础上,设计了一种动态和静态算法。NANDFLASH闪存磨损均衡算法结合算法。一个完整的静态磨损均衡过程是:当系统更新操作经过一定次数的擦除次数n时,启动静态磨损均衡机制,首先遍历所有参与擦除的数据块,计算该数据块的磨损状态。将磨损状态从低到高排序。当达到阈值whigh时,该块被定义为热数据块,如果低于阈值wlow,则定义为冷数据块。然后热数据块被有效数据重新定位到一个新的空块或者处于磨损状态的wi***块,冷数据块被重新定位到原来最热的数据块。重排后依次进行,将重定位的数据块重新链接到文件系统。磨损均衡结束后,计算未超过阈值的数据块擦除次数的标准差。如果太高,则将超过平均擦除次数的某个值的块标记为热数据块,并参与下一次系统更新。这样,热点数据块会不断地重新定位新的物理块,而不会只在部分块中进行擦写,有效降低了闪存数据块的磨损。算法流程如图2和图3所示。.2完整的平衡损失流程图Ⅰ图3完整的平衡损失流程图Ⅱ在普通计算机平台上模拟NAND闪存的存储状态,用户可以在其中设置存储状态SSD模拟软件容量、存储通道、闪存块大小等参数可以根据用户需求在没有闪存硬件支持的情况下模拟使用NAND闪存。为了直观地比较磨损均衡算法的效果,本文设计了两个NAND闪存分配4个闪存芯片并联。闪存1采用传统的静态磨损均衡算法[13](HWL算法);闪存2采用了本文改进的磨损均衡算法。两种闪存的其他详细配置如表1所示。表1Flash配置表Table1Flash配置表3.2测试内容及结果分析本节比较了改进前后损耗均衡算法的效果。三个因素对闪存磨损均衡性能的影响主要是通过比较两个磨损状态阈值w、系统更新次数n和静态磨损周期M。评价指标是基于一个内的擦除次数标准cycle1)为了研究磨损状态阈值上限对闪存存储的磨损均衡性能的影响,设置HWL算法为w=1.2%和w=0.8%来记录物理变化块擦除次数的标准差。从图4和图5可以看出,与HWL算法相比,改进后的静态磨损均衡算法的磨损均衡效果更好。随着写请求的不断增加,这两个标准差都在稳步增长。这表明随着写请求数量的增加,标准差的增长在静态磨损均衡机制的控制下趋于稳定。当趋于稳定时,改进后的擦除次数的标准差小于HWL算法的16.4%左右,说明改进后的阈值使得磨损均衡的效果更好。2)通过物理块擦除次数标准差的变化曲线,比较改进前后静态磨损均衡周期对静态磨损均衡效果的影响。HWL算法采用固定周期,改进算法采用可变周期。从图中可以明显看出,改进后的静态磨损均衡算法效果显着:当写入请求达到2.2×105次时,擦除和写入两次的标准差均达到了***。但随后HWL算法的擦除次数标准差继续增加,直到写请求达到7.4×105,没有下降趋势;然而,改进后的擦除次数的标准差开始下降,最后稳定在10×105左右。由于改进后的算法采用了动态周期选择的方法,与HWL的固定周期相比,更能适应闪存静态磨损均衡的要求。图4磨损状态阈值对磨损均衡的影响flashperformanceofflash图5静态损耗均衡周期对静态损耗均衡效果的影响对比分析通过对比观察发现,即使静态损耗和均衡周期设置得比较短,磨损效果平整度仍不理想。4结论对目前流行的HWLlossleveling算法进行了优化。重新定义数据块的冷热属性,并使用高低阈值作为热数据和冷数据的判断条件;优化了触发机制,优化策略将现有的静态磨损均衡策略与动态磨损均衡策略相结合。通过SSDSim软件完成对比测试,实验证明改进后的磨损均衡算法有效降低了物理块擦除次数的标准差,提高了磨损均衡效果。