CN110688326A - 一种基于多阈值的闪存磨损均衡算法 - Google Patents
一种基于多阈值的闪存磨损均衡算法 Download PDFInfo
- Publication number
- CN110688326A CN110688326A CN201910901492.4A CN201910901492A CN110688326A CN 110688326 A CN110688326 A CN 110688326A CN 201910901492 A CN201910901492 A CN 201910901492A CN 110688326 A CN110688326 A CN 110688326A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- cold
- erasing
- hot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种基于多阈值的闪存磨损均衡算法,包括步骤:S100、基于双阈值的回收块选择策略;S200、基于擦除次数的空闲块分配机制;S300、冷热数据分离策略。在YAFFS2中冷热数据中,引入冷热数据分离策略,在系统运行过程中,一旦检测到块的最大、最小擦除次数差值达到阈值Th2,将擦除次数最小的块上的有效冷数据搬移到擦除次数最大的空闲块上。通过合理地设置各个阈值的具体取值不仅将最大最小擦除次数控制在一个较小的范围内,而且付出了较小的附加擦除操作。
Description
技术领域
本发明涉及辅助存储介质技术领域,具体涉及一种基于多阈值的闪存磨损均衡算法。
背景技术
目前有关磨损均衡的研究重点主要集中在:优化冷数据搬移操作。一部分工作主要研究随机数据迁移机制,如Ban算法;另一部分研究通过对数据的冷热属性进行判别,然后调整冷热数据的存储位置,达到整个物理块擦除次数的均匀分布。另外,擦除操作多由垃圾回收触发,在兼顾垃圾回收效率的基础上进行磨损均衡机制的研究工作包括CAT、EF-Greedy等。CAT策略在cost-benefit评估模型的基础上加以改进,综合考虑了各物理块的已擦除次数与两次擦除操作的时间间隔,这样可以更全面科学的实现静态磨损均衡。EF-Greedy策略通过计算物理块的更新频率动态地识别冷热数据,算法可以自适应地控制不同物理块的擦除次数差异,不仅具有较好的磨损均衡效果而且系统的额外擦除开销较小。Kim提出定期交换不同物理块内的有效数据页,实现数据写入的均匀分布,进而使得不同物理块的擦除次数接近均匀分布。Chang L P提出当块的最大擦除次数之差超过系统设定的阈值时,启动静态数据搬移,将擦除次数最少的块上的有效数据搬移至当前空闲块中擦除次数最大的物理块,擦除原块后分配给新写入的数据,牺牲了垃圾回收的效率但却换来了物理块的磨损均匀。
通过深入细致的分析现有的磨损均衡算法,归纳出以下三个与磨损均衡息息相关的因素:1)回收块选择机制,磨损均衡要求擦除当前时刻具有最小擦除次数的块,而垃圾回收则偏向于选择有效数据最少的块进行回收,显然二者很难统一。合理的回收块选择机制应付出较小的数据搬移代价获得最好的均衡效果;2)空闲块分配策略,如何处理冷数据的搬移以及新写入的数据如何存放,直接由块分配策略决定;3)冷热数据分离机制,好的算法应能够清晰地区分冷热数据,并且能够解决冷数据突然变热以及热数据变冷的块反转现象。
总之,嵌入式系统中仍然没有很好的实现闪存磨损均衡,事实上好的均衡算法仅需保证在闪存颗粒寿命即将耗尽时,所有块的擦除次数趋于一致,没有必要要求任意时刻闪存的磨损都呈现均匀分布。
Flash器件不支持数据覆写操作,数据更新时通常不清除原数据,而是直接将更新数据写入其他空闲区域,并标记原数据无效。系统空间不足时,触发垃圾回收操作擦除无效数据所在的块。然而Flash物理块的可靠擦除次数有限,尤其TLC型NAND仅为1000次,一旦某块的擦除次数率先达到上限,就会导致整个Flash芯片迅速失效。为解决因块擦除操作分布不合理导致的Flash器件性能下降问题,系统设计时引入磨损均衡机制,目标是使擦除操作均匀地分布于Flash所有物理块,同时延长首个磨穿块的出现时间,从而最大化单个Flash芯片的擦写寿命。但是,上述目标的实现不可避免地引入了冷数据搬移操作,影响新数据的写入速率。
发明内容
为了减小磨损均衡算法引入的额外擦除操作同时尽可能的提高磨损均衡算法的均衡效果,本发明提供了一种基于多阈值的闪存磨损均衡算法,该算法是一种多阈值的静态磨损均衡机制MTWL,通过合理地设置各个阈值的具体取值不仅将最大最小擦除次数控制在一个较小的范围内,而且付出了较小的附加擦除操作。
为了达到以上目的,本发明采取如下技术方案予以实现:
一种基于多阈值的闪存磨损均衡算法,包括以下步骤:
S100、增加基于双阈值的回收块选择策略:
对YAFFS2回收块选择机制,加入块的年龄age参数,增加age参数后的回收块选择策略遵循(1)式:
其中,age参数指从本次分配开始到当前擦除时刻为止闪存块的使用时间,u表示单个块中有效数据的占有比率;benifit/cost指费效比;
回收块选择机制选取当前时刻年龄最大且有效数据最少的块作为回收对象,当Flash中空闲块数量低至系统规定的下限Th0,触发垃圾回收机制;
S200、增加基于擦除次数的空闲块分配机制:
系统通过按照擦除次数由小到大排列的顺序链表clean_list管理空闲物理块,将擦除干净的物理块按序插入clean_list链表,采用二分查找算法搜索当前回收块的插入位置;每次写入新数据时选择表头元素标记的物理块进行分配,而进行冷数据搬移时则选择表尾元素标记的物理块作为转移冷数据的目标块;
S300、增加冷热数据分离策略:
在YAFFS2中冷热数据中,引入冷热数据分离策略,在系统运行过程中,一旦检测到块的最大、最小擦除次数差值达到阈值Th2,将擦除次数最小的块上的有效冷数据搬移到擦除次数最大的空闲块上;冷热数据分离策略通过块擦除次数来判断数据温度。
作为本发明的进一步改进,S100中,age参数用四舍五入进行整数化处理,擦除后将age参数清零。
作为本发明的进一步改进,S100中,根据式(1)的计算所有块的benifit/cost,并找出最大值根据系统预先设定的变量Th1动态调整目标回收块的数量,将式(1)的计算结果落入区间所对应的块全部归入待回收块池,再根据擦除次数由小到大的顺序依次擦除回收块池中的物理块,如果目标块中包含有效数据,现将有效数据搬移至其它空闲块,然后擦除目标块,直到回收的空间大小满足系统需求则结束本次垃圾回收操作。
作为本发明的进一步改进,S200中,空闲块分配机制将热数据写入擦除次数较小的块,同时将冷数据搬移到磨损最大的空闲块,而且插入回收块的算法时间复杂度很小。
作为本发明的进一步改进,S300中,冷热数据分离策略通过块擦除次数来判断数据温度的操作步骤如下:
(1)初始化:剔除初始坏块后,将NAND Flash中剩余块分为三个部分,前者放到冷池中,后者放入热池中;
(2)数据交换:找出热池中擦除次数最多的块A,用max_wear表示擦除次数,冷池中擦除次数最少的块B,用min_wear表示擦除次数;当max_wear-min_wear≥Th2时,立即进行数据搬移;
(3)块反转:当热池中的某个块突然被冷冻时,引入第四个阈值Th3;当热池中擦除次数最多的块Hmax和热池中擦除最少的块Hmin;用max_wear1表示其擦除次数,用min_wear1表示其擦除次数,擦除次数满足max_wear1-min_wear1>Th3时,进行热块反转操作,将块Hmin放到冷池中去;另外当冷池中的某个块突然变热逐渐成为冷池中最热的块时,用max_wear2表示其擦除次数,用min_wear2表示其擦除次数,同样如果冷池中擦除次数最大的块Cmax与擦除次数最小的块Cmin间的擦除次数差值满足max_wear2-min_wear2>Th4时,将块Cmax归入热池。
作为本发明的进一步改进,步骤(2)中,数据搬移的具体步骤为:首先将块A上的有效数据转存到空闲块链表clean-list的表头块,擦除该块后将块B中收集的冷数据拷贝到块A中,最后擦除块B并根据擦除次数将块B插入到clean-list中。
本发明具有以下有益效果:
众所周知,闪存芯片内部在逻辑上由众多存储块组成,每个存储块都有相似但有限的擦除次数寿命限制,当某一存储块的擦除次数达到擦除寿命限制时,该闪存芯片将无法继续正常使用。因此,需要通过采用磨损均衡机制使所有存储块的擦除次数趋近一致,最大限度延长整个闪存芯片的使用寿命。本发明分别采用了基于阈值的回收块选择机制、基于有序链表的空闲块分配机制以及冷热数据分离策略以更进一步优化闪存的磨损均衡效果,提高闪存的使用寿命。通过合理地设置各个阈值的具体取值不仅将最大最小擦除次数控制在一个较小的范围内,而且付出了较小的附加擦除操作。本发明设计的MTWL均衡算法较表中的其它均衡算法具有更小的擦除次数标准差,即MTWL均衡算法的执行效果最好。
附图说明
图1为一种基于多阈值的闪存磨损均衡算法流程图;
图2空间分配示意图;
图3擦除次数标准差随参数λ的变化趋势图。
具体实施方式
以下结合附图和实施例对本发明做进一步的说明。
本发明属于NAND Flash存储系统静态磨损均衡算法,适用于那些以NAND Flash作为主要辅助存储介质的存储平台,如嵌入式存储系统、企业级闪存存储系统以及航天固态存储器领域。Flash磨损均衡技术有利于延长闪存的使用寿命,减小更新存储介质的成本,本发明设计多阈值磨损均衡算法属于静态均衡技术,需要较大的RAM存储空间,参考下表,最好留有一定的余量。
Flash容量 | 1GB | 2GB | … | 64GB |
MTWL | 49KB | 98KB | … | 3136KB |
为了减小磨损均衡算法引入的额外擦除操作同时尽可能的提高磨损均衡算法的均衡效果,本发明提供了一种多阈值的静态磨损均衡机制MTWL,通过合理地设置各个阈值的具体取值不仅将最大最小擦除次数控制在一个较小的范围内,而且付出了较小的附加擦除操作。如图1所示,本发明包括以下步骤:
1、基于双阈值的回收块选择策略
针对YAFFS2回收块选择机制的缺陷,可以通过加入块的年龄age参数解决。增加age参数后的回收块选择策略遵循式(1),该回收块选择策略遵循式综合考虑数据更新速率、擦除时的写放大效应对磨损均衡的影响。再者,为了尽可能的延长闪存的使用寿命,应该延迟各个回收块的擦除时间。
其中,age参数指从本次分配开始到当前擦除时刻为止闪存块的使用时间,用四舍五入进行整数化处理,擦除后将age参数清零。u表示单个块中有效数据的占有比率,由于有效数据的搬移会引起不必要的时间开销。新的回收块选择机制选取当前时刻年龄最大且有效数据最少(即benifit/cost比值最大)的块作为回收对象,但是一般情况下,age最大的块其上的有效数据的比例也会较大,因为age最大的块上存储的数据可认为是cool data,而cool data一般又是有效数据,所以上式的分母也会较大,导致比值较小。当Flash中空闲块数量低至系统规定的下限Th0,触发垃圾回收机制,根据式(1)的计算所有块的benifit/cost,并找出最大值根据系统预先设定的变量Th1动态调整目标回收块的数量,将式(1)的计算结果落入区间所对应的块全部归入待回收块池,再根据擦除次数由小到大的顺序依次擦除回收块池中的物理块,如果目标块中包含有效数据,现将有效数据搬移至其它空闲块,然后擦除目标块,直到回收的空间大小满足系统需求则结束本次垃圾回收操作。
2、基于擦除次数的空闲块分配机制:
系统通过按照擦除次数由小到大排列的顺序链表clean_list管理空闲物理块,将擦除干净的物理块按序插入clean_list链表,采用二分查找算法搜索当前回收块的插入位置。每次写入新数据时选择表头元素标记的物理块进行分配,而进行冷数据搬移时则选择表尾元素标记的物理块作为转移冷数据的目标块,见图2。这样可以将热数据写入擦除次数较小的块,同时将冷数据搬移到磨损最大的空闲块,而且插入回收块的算法时间复杂度很小,为o(log2N)(N表示系统当前空闲块的数量)。
3、冷热数据分离策略:
对于YAFFS2中冷热数据混存的问题,可以引入冷热数据分离策略解决。冷热数据分离策略不仅能够收集冷数据,有效地避免热数据更新时冷数据的被迫更新现象,而且可以有效解决冷数据突然变热或者热数据突然变冷的块反转情况。在系统运行过程中,一旦检测到块的最大、最小擦除次数差值达到阈值Th2,将擦除次数最小的块上的有效冷数据搬移到擦除次数最大的空闲块上。当冷池中的块被热数据占据或者热池中块被冷数据占据时,冷热数据分离策略也能处理这类块反转问题。数据的冷热程度对块的擦除次数会产生直接影响,因此冷热数据分离策略通过块擦除次数来判断数据温度。操作步骤如下:
(1)初始化:剔除初始坏块后,将NAND Flash中剩余块分为三个部分,前者放到冷池中,后者放入热池中。
(2)数据交换:找出热池中擦除次数最多的块A(用max_wear表示擦除次数),冷池中擦除次数最少的块B(用min_wear表示擦除次数)。当max_wear-min_wear≥Th2时,立即进行数据搬移。首先将块A上的有效数据转存到空闲块链表clean-list的表头块,擦除该块后将块B中收集的冷数据拷贝到块A中,最后擦除块B并根据擦除次数将块B插入到clean-list中。利用冷数据不易更新的特点降低热块的磨损程度,同时选择clean-list中擦除次数最小的块存储新写入的数据,从而达到磨损均衡的目的。
(3)块反转:当热池中的某个块突然被冷冻时,由于冷数据很少更新导致该块被滞留在热池中且逐渐成为热池中最冷的块。针对上述情况,引入第四个阈值Th3。当热池中擦除次数最多的块Hmax(用max_wear1表示其擦除次数)和热池中擦除最少的块Hmin(用min_wear1表示其擦除次数)擦除次数满足max_wear1-min_wear1>Th3时,进行热块反转操作,将块Hmin放到冷池中去。另外当冷池中的某个块突然变热逐渐成为冷池中最热的块时,同样如果冷池中擦除次数最大的块Cmax(用max_wear2表示其擦除次数)与擦除次数最小的块Cmin(用min_wear2表示其擦除次数)间的擦除次数差值满足max_wear2-min_wear2>Th4时,将块Cmax归入热池。
关键阈值分析:
本发明通过VMware虚拟机在Windows XP系统上运行Ubantu10.0操作系统,安装Qemu软件模拟mini2440开发板,设置NAND型号为K9FG08U0A,具体参数为2048个block,每个block包含64个page,每个page的大小为(2048+64)Byte。本发明仅使用前20个block进行仿真,初始时向Flash的前10个block写入数据,前9个block存储冷数据,更新频率为0.1,第10个block存储热数据,更新频率为0.9。MTWL静态均衡算法中涉及5个关键阈值,这些阈值的选取都会在一定程度上影响MTWL磨损均衡算法的执行效果,接下来将进行深入细致的仿真分析。
a.系统规定的预留块数量Th0
参考各厂商的推介值,Th0一般设置为0.02N,N表示Flash芯片包含的块数。当然,Th0可根据具体的应用场合调整,但为了提高Flash空间的利用率,建议Th0的值不要超过8。
b.目标回收块集的大小Th1
待回收块集的确定区间中包含的块数量由Th1决定,Th1如果设置的较大,很难准确识别数据的冷热属性,但是设置的太小又会导致擦除操作的频繁启动,影响系统的数据写入速率。表1给出了当数据更新次数为5万次时,不同Th1下最大擦除次数与块擦除次数标准差的分布情况,可据此选出满足目标应用的Th1,显然Th1选4具有最好的均衡效果。
表1擦除次数随阈值Th1变化情况
c.最大最小擦除次数差值Th2
当最大最小擦除次数满足max_wear-min_wear≥Th2是启动静态数据搬移操作,将擦除次数最小的物理块内的有效数据全部搬移至空闲链表的表尾元素标记的物理块,这样可以减缓擦除次数的两级分化,因而Th2的值直接关系着物理块磨损情况。Th2较大时,可以减少静态数据的搬移次数,但是不利于擦除操作的均匀分布;Th2较小时可以达到较好的均衡效果,但是静态数据搬移操作频繁,系统需要付出较大的额外擦除代价。表2给出了最大擦除次数分别为8K、15K、20K时,系统可以执行的数据更新次数(单位:百万次)。从表2可以看出Th2选取为30时具有较大的数据更新次数。
表2数据更新次数与阈值Th2的变化情况
但是,上述分析没有考虑闪存需要付出的额外擦除次数,事实上当Flash具有较多空闲空间且最大擦除次数远远小于块擦除次数上限时,应该尽量避免触发MTWL均衡算法,这样可以使得系统具有更好的数据响应速率,当最大擦除次数接近块擦除次数上限时,应该最大限度的避免继续磨损擦除次数最大的物理块,这样可以延长Flash的寿命。基于此,Th2应该是一个随着最大擦除次数逐渐减小的变量,如式2,其中比例因子λ是一个常数,满足0≤λ≤1。
关于λ的具体取值参见图3,当λ=0时最大最小擦除次数始终相等,Flash所有物理块具有相同的擦除次数,实现了理想的磨损均衡,但是这需要付出最大的额外擦除代价,实际应用中通常不使用次值。当λ=1时,Th2=(10K-max_wear),结合max_wear-min_wear≥Th2得不利于缩小最大最小擦除次数之差,也即不利于磨损均衡的执行效果。从图3明显得出当0.1≤λ<0.2具有较小的擦除次数标准差,可以从0.1≤λ<0.2选一个合适的λ。
Th2=λ×(H-max_wear) (2)
热块翻转阈值Th3和冷块翻转阈值Th4
仿照Th2的选择依据,Th3、Th4也应该随着数据更新情况的动态调整的物理量,且Th3、Th4应该严格小于最大最小擦除次数阈值Th2。考虑到实际应用中一般包含较多的冷数据,而冷数据的属性相对较为稳定,应该将冷块翻转阈值Th4设置的相对大一些,而将热块翻转阈值Th3设置的小一些。基于此,本发明对Th3、Th4的设定值满足式(3)、(4)。
Th3=0.5×Th2 (3)
Th4=0.25×Th2 (4)
基于前小节的分析,本发明对各阈值设置如下表:Th0=0,Th1=2,Th2=0.1×(H-max_wear),Th3=0.5Th2,Th4=0.25Th2,沿用前面的仿真试验,结果如表3:
表3MTWL算法与典型算法的性能比较
表3第一列表示Flash总的擦除次数,表中数据表示在各典型算法下块擦除次数标准差,显然本发明设计的MTWL均衡算法较表中的其它均衡算法具有更小的擦除次数标准差,即MTWL均衡算法的执行效果最好。
本发明使用寿命延长度衡量不同均衡算法的对Flash寿命的改进情况,其定义如下式5:
其中max_wear1表示算法1的最大擦除次数,max_wear2表示算法2的最大擦除次数,式4-5可以用来描述算法1相对于算法2的寿命延长度。表4列出了MTWL算法与其它典型算法在完成相同的数据更新请求后,最大擦除次数的取值分布。
表4最大擦除次数分布
表4的第一列为Flash执行的总擦除次数,当总擦除次数为10万次时,MTWL静态均衡算法相对于YAFFS2实现的动态均衡算法的寿命延长度为72.58%,相对于Rejuvenator静态均衡算法的寿命延长度为1.98%,相对于Dual-Pool算法的寿命延长度为4.8%,相对于BET算法(k=2)的寿命延长度为64.47%;当总擦除次数为20万次时,MTWL算法相对于YAFFS2实现的动态均衡算法的寿命延长度为69.41%,相对于Rejuvenator算法的寿命延长度为1.85%,相对于Dual-Pool算法的寿命延长度为28.62%,相对于BET算法(k=2)的寿命延长度为63.57%。显然MTWL算法有效的控制了最大擦除次数的增长速度,更好的延长了Flash的擦写寿命。
当NAND Flash中出现第一个wear out块后,认为NAND Flash彻底损坏。试验中块的擦除寿命是100000次,若每天需要做400次擦除操作,在未做改进的YAFFS2文件系统下,NAND Flash仅有5%的块轮流更新,那么可以得到闪存设备的使用寿命:
在加入MTWL均衡算法后的改进后的YAFFS2文件系统下,NAND Flash有25%的块轮流擦写,在与YAFFS2文件系统相同的数据更新前提下,MTWL磨损均衡算法总的擦除次数为457次,那么可以得到闪存设备的使用寿命:
由式(6)和式(7)可知,改进后的YAFFS2文件系统将延长NAND Flash设备的使用寿命延长为原来的4.38倍。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种基于多阈值的闪存磨损均衡算法,其特征在于,包括以下步骤:
S100、增加基于双阈值的回收块选择策略:
对YAFFS2回收块选择机制,加入块的年龄age参数,增加age参数后的回收块选择策略遵循(1)式:
其中,age参数指从本次分配开始到当前擦除时刻为止闪存块的使用时间,u表示单个块中有效数据的占有比率;benifit/cost指费效比;
回收块选择机制选取当前时刻年龄最大且有效数据最少的块作为回收对象,当Flash中空闲块数量低至系统规定的下限Th0,触发垃圾回收机制;
S200、增加基于擦除次数的空闲块分配机制:
系统通过按照擦除次数由小到大排列的顺序链表clean_list管理空闲物理块,将擦除干净的物理块按序插入clean_list链表,采用二分查找算法搜索当前回收块的插入位置;每次写入新数据时选择表头元素标记的物理块进行分配,而进行冷数据搬移时则选择表尾元素标记的物理块作为转移冷数据的目标块;
S300、增加冷热数据分离策略:
在YAFFS2中冷热数据中,引入冷热数据分离策略,在系统运行过程中,一旦检测到块的最大、最小擦除次数差值达到阈值Th2,将擦除次数最小的块上的有效冷数据搬移到擦除次数最大的空闲块上;冷热数据分离策略通过块擦除次数来判断数据温度。
2.根据权利要求1所述的基于多阈值的闪存磨损均衡算法,其特征在于,S100中,age参数用四舍五入进行整数化处理,擦除后将age参数清零。
4.根据权利要求1所述的基于多阈值的闪存磨损均衡算法,其特征在于,S200中,空闲块分配机制将热数据写入擦除次数较小的块,同时将冷数据搬移到磨损最大的空闲块,而且插入回收块的算法时间复杂度很小。
5.根据权利要求1所述的基于多阈值的闪存磨损均衡算法,其特征在于,S300中,冷热数据分离策略通过块擦除次数来判断数据温度的操作步骤如下:
(1)初始化:剔除初始坏块后,将NAND Flash中剩余块分为三个部分,前者放到冷池中,后者放入热池中;
(2)数据交换:找出热池中擦除次数最多的块A,用max_wear表示擦除次数,冷池中擦除次数最少的块B,用min_wear表示擦除次数;当max_wear-min_wear≥Th2时,立即进行数据搬移;
(3)块反转:当热池中的某个块突然被冷冻时,引入第四个阈值Th3;当热池中擦除次数最多的块Hmax和热池中擦除最少的块Hmin;用max_wear1表示其擦除次数,用min_wear1表示其擦除次数,擦除次数满足max_wear1-min_wear1>Th3时,进行热块反转操作,将块Hmin放到冷池中去;另外当冷池中的某个块突然变热逐渐成为冷池中最热的块时,用max_wear2表示其擦除次数,用min_wear2表示其擦除次数,同样如果冷池中擦除次数最大的块Cmax与擦除次数最小的块Cmin间的擦除次数差值满足max_wear2-min_wear2>Th4时,将块Cmax归入热池。
6.根据权利要求5所述的基于多阈值的闪存磨损均衡算法,其特征在于,步骤(2)中,数据搬移的具体步骤为:首先将块A上的有效数据转存到空闲块链表clean-list的表头块,擦除该块后将块B中收集的冷数据拷贝到块A中,最后擦除块B并根据擦除次数将块B插入到clean-list中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910901492.4A CN110688326A (zh) | 2019-09-23 | 2019-09-23 | 一种基于多阈值的闪存磨损均衡算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910901492.4A CN110688326A (zh) | 2019-09-23 | 2019-09-23 | 一种基于多阈值的闪存磨损均衡算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110688326A true CN110688326A (zh) | 2020-01-14 |
Family
ID=69109917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910901492.4A Pending CN110688326A (zh) | 2019-09-23 | 2019-09-23 | 一种基于多阈值的闪存磨损均衡算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688326A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324303A (zh) * | 2020-01-21 | 2020-06-23 | 深圳忆联信息系统有限公司 | Ssd垃圾回收方法、装置、计算机设备及存储介质 |
CN111414138A (zh) * | 2020-03-19 | 2020-07-14 | 青岛镕铭半导体有限公司 | 一种固态硬盘磨损均衡方法和装置 |
CN111858394A (zh) * | 2020-07-28 | 2020-10-30 | 深圳忆联信息系统有限公司 | 垃圾回收的流量控制方法、装置、计算机设备及存储介质 |
CN112035060A (zh) * | 2020-08-17 | 2020-12-04 | 合肥康芯威存储技术有限公司 | 一种存储介质的错误检测方法、系统及存储系统 |
CN112506811A (zh) * | 2020-12-17 | 2021-03-16 | 湖南翰博薇微电子科技有限公司 | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 |
CN114924690A (zh) * | 2022-02-23 | 2022-08-19 | 华东师范大学 | 一种基于非均衡磨损闪存的读性能优化方法 |
CN115586874A (zh) * | 2022-11-24 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
CN117971116A (zh) * | 2023-12-21 | 2024-05-03 | 深圳三地一芯电子股份有限公司 | 磨损均衡方法、装置、存储控制芯片及sd卡 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198870A1 (en) * | 2008-01-31 | 2009-08-06 | Dell Products L.P. | Methods and Media for Writing Data to Flash Memory |
CN108108128A (zh) * | 2017-12-19 | 2018-06-01 | 深圳忆联信息系统有限公司 | 一种混合ssd的磨损均衡方法及ssd |
-
2019
- 2019-09-23 CN CN201910901492.4A patent/CN110688326A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198870A1 (en) * | 2008-01-31 | 2009-08-06 | Dell Products L.P. | Methods and Media for Writing Data to Flash Memory |
CN108108128A (zh) * | 2017-12-19 | 2018-06-01 | 深圳忆联信息系统有限公司 | 一种混合ssd的磨损均衡方法及ssd |
Non-Patent Citations (1)
Title |
---|
拓晶,唐磊: "基于多阈值的闪存磨损均衡算法", 《微电子学与计算机》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324303A (zh) * | 2020-01-21 | 2020-06-23 | 深圳忆联信息系统有限公司 | Ssd垃圾回收方法、装置、计算机设备及存储介质 |
CN111414138A (zh) * | 2020-03-19 | 2020-07-14 | 青岛镕铭半导体有限公司 | 一种固态硬盘磨损均衡方法和装置 |
CN111414138B (zh) * | 2020-03-19 | 2024-02-13 | 镕铭微电子(济南)有限公司 | 一种固态硬盘磨损均衡方法和装置 |
CN111858394B (zh) * | 2020-07-28 | 2024-02-13 | 深圳忆联信息系统有限公司 | 垃圾回收的流量控制方法、装置、计算机设备及存储介质 |
CN111858394A (zh) * | 2020-07-28 | 2020-10-30 | 深圳忆联信息系统有限公司 | 垃圾回收的流量控制方法、装置、计算机设备及存储介质 |
CN112035060A (zh) * | 2020-08-17 | 2020-12-04 | 合肥康芯威存储技术有限公司 | 一种存储介质的错误检测方法、系统及存储系统 |
CN112035060B (zh) * | 2020-08-17 | 2024-04-26 | 合肥康芯威存储技术有限公司 | 一种存储介质的错误检测方法、系统及存储系统 |
CN112506811A (zh) * | 2020-12-17 | 2021-03-16 | 湖南翰博薇微电子科技有限公司 | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 |
CN114924690A (zh) * | 2022-02-23 | 2022-08-19 | 华东师范大学 | 一种基于非均衡磨损闪存的读性能优化方法 |
CN114924690B (zh) * | 2022-02-23 | 2024-04-19 | 华东师范大学 | 一种基于非均衡磨损闪存的读性能优化方法 |
CN115586874A (zh) * | 2022-11-24 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
CN115586874B (zh) * | 2022-11-24 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
WO2024108849A1 (zh) * | 2022-11-24 | 2024-05-30 | 苏州元脑智能科技有限公司 | 一种数据块回收方法、装置及电子设备和非易失性可读存储介质 |
CN117971116A (zh) * | 2023-12-21 | 2024-05-03 | 深圳三地一芯电子股份有限公司 | 磨损均衡方法、装置、存储控制芯片及sd卡 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110688326A (zh) | 一种基于多阈值的闪存磨损均衡算法 | |
US10409526B2 (en) | Adaptive garbage collection | |
CN111708481B (zh) | 一种基于超级块的固态硬盘ssd双区磨损均衡处理方法 | |
US11429284B2 (en) | Data categorization based on invalidation velocities | |
CN108108128A (zh) | 一种混合ssd的磨损均衡方法及ssd | |
CN106951187B (zh) | 一种固态存储静态磨损均衡的实现方法 | |
TWI489373B (zh) | 資料儲存裝置和快閃記憶體之區塊管理方法 | |
JP4518951B2 (ja) | 不揮発性記憶システムにおける自動損耗均等化 | |
TWI446345B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
KR100526190B1 (ko) | 플래시 메모리의 재사상 방법 | |
TWI409819B (zh) | 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
CN102289412B (zh) | 固态硬盘的静态磨损均衡方法及系统 | |
US8738876B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
US11249903B2 (en) | Memory system for garbage collection operation and operating method thereof | |
CN106874217A (zh) | 存储器系统及控制方法 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
US20210240613A1 (en) | Memory system and operating method thereof | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
CN107423229B (zh) | 一种面向页级ftl的缓冲区改进方法 | |
CN110347612A (zh) | 一种适用于固态盘的动态调整垃圾回收方法 | |
KR20140003805A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
CN113535074B (zh) | 用来针对非易失性存储器进行区块管理的方法以及设备 | |
CN102637145B (zh) | 用来进行区块管理的方法、记忆装置及其控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200114 |
|
RJ01 | Rejection of invention patent application after publication |